c# - SqlDataReader 执行错误

标签 c# .net sql sql-server

我正在尝试使用 C# MSVS 2008 从名为 Specializationtbl 的表中检索特化 ID,该表在其他一些行旁边包括 SpecializationName 和 SpecializationID,我的问题与一些错误“No Data to present”有关,命令如下波纹管:

SqlCommand READSpecID = new SqlCommand("SELECT * FROM Specializationtbl WHERE SpecializationName='" + comboBox1.Text + "'" , DBcnction);
DBcnction.Open();

SqlDataReader ReadSpecID_ = READSpecID.ExecuteReader();
ReadSpecID_.Read();
int SpecID_ = Convert.ToInt16(ReadSpecID_["SpecID"].ToString());

DBcnction.Close();

我还尝试选择“SpecID”而不是所有行,但似乎无法正确密封查询并不断收到“无数据”错误,知道我在哪里犯错了吗?

最佳答案

1) 在给 READSPecID 赋值之前尝试打开 DBcnction

DBcnction.Open();
SqlCommand READSpecID = new SqlCommand("SELECT * FROM Specializationtbl WHERE     SpecializationName='" + comboBox1.Text + "'" , DBcnction);

2)在SSMS中运行命令:

 SELECT * FROM Specializationtbl WHERE SpecializationName ='yourvalue'

看看有没有返回结果

3) 检查 comboBox1.Text 是否有值

4) 验证 comboBox1.Text 的内容(或使用参数化查询或存储过程)以确保您不会成为 SQL 注入(inject)的受害者:http://en.wikipedia.org/wiki/SQL_injection

关于c# - SqlDataReader 执行错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10363834/

相关文章:

c# - 如何从其 CLSID 获取运行时可调用包装类的 System.Type?

c# - 如何在 RSA 上设置 KeySize?

c# - 完全限定的类名有什么意义?

.net - 循环遍历 LINQ 数据的更快方法

c# - 如何从 C# 应用程序发送签名的电子邮件?

sql - PostgreSQL - 如何抑制查询语句消息

c# - 防止 XslCompiledTransform 使用自闭合标签

c# - 如何为 ASP.NET WebForms 端点允许 CORS?

php - 尝试使用prepare和bindParam将用户数据插入SQL表

java - 根据周数从MYSQL中检索数据