通过pymssqli链接sql sever通过语句
"SELECT * FROM LCRF_datasheet WHERE ss_Cj = '武汉海创'"
查询,结果显示是空
数据库链接成功
None
操作已成功执行可以确认数据库中是有对应的数据的并且通过其他关键字是可以直接查询到的
完整代码如下:
import pymssql
IP = '192.168.50.127'
username = 'sa'
password = '123'
DB = 'TAIE-E'
connect = pymssql.connect(IP, username, password, DB,charset='cp936')
if connect:
print("数据库链接成功")
#创建游标
cursor = connect.cursor(as_dict=True) #返回结果为字典形式(列名:值)
cursor.execute("SELECT * FROM LCRF_datasheet WHERE ss_Cj = '武汉海创'") #查询数据
wor = cursor.fetchone() #获取一条记录
print(wor)
print("操作已成功执行")
connect.commit()
#关闭游标
cursor.close()
#关闭链接
connect.close()
else:
print("链接失败")
数据库如下:
执行结果查不到,请问我的这种情况问题出在哪
查询条件改成模糊查询试试, 万一 ‘武汉海创’ 这里有空格,你用=肯定查不出来
sqlserver后开开监控看看,八成是SQL语句传到SqlServer的时候乱码了
由where a='武汉xx' 变成 where a = '$@%*'
所以找不到内容
我也在找解决办法
方法一:
将ss_Cj这个表的类型换成nvarchar,问题就可以解决了。
方法二
将connect = pymssql.connect(IP, username, password, DB,charset='cp936')
换成connect = pymssql.connect(IP, username, password, DB)
有乱码的地方输出时重新编码下,str.encode('latin1').decode('gbk')