使用带 LIKE 的通配符从 SQL 服务器检索数据

Retrieve data from SQL Server using wildcard with LIKE

我有一个使用 pyodbc.

连接到 SQL 服务器的 django 项目

我能够连接和检索数据。

但问题是,当我尝试使用 WHERE & LIKE 过滤多个字段的数据时,系统崩溃并显示以下错误。

'tuple' object has no attribute 'format'

views.py

from django.shortcuts import render
import pyodbc


def connect(request):

    conn = pyodbc.connect(
        'Driver={ODBC Driver 17 for SQL Server};'
        'Server=DESKTOP-LPD1575\SQLEXPRESS;'
        'Database=testDB;'
        'UID=test;'
        'PWD=test;'

    )
    query = 'n'
    queryid = 3
    cursor = conn.cursor()

    c = cursor.execute('SELECT * FROM Artist where artistName like  ? or id = ?',('%{0}%','{1}').format(query,queryid))

    print(c)
    return render (request,'connect.html',{"c":c})

connect.html

<table align = "center">
<tr align="center">
            <th>id</th>
            <th>FolderNumber</th>
            <th>Folderdate</th>

        </tr>
{% for row in c %}
 <tr align="center">
    <td>{{ row.0 }}</td>
    <td>{{ row.1 }}</td>
    <td>{{ row.2 }}</td>

</tr>
{% endfor %}
</table>

如果我理解正确,您应该将元组作为第二个参数传递给 cursor.execute(),仅使用文字值:

c = cursor.execute('SELECT * FROM Artist WHERE artistName LIKE ? OR id = ?',
    ('%' + query + '%', queryid))