c# - 如何解决 System.Data.SqlClient.SqlException 异常

标签 c# sql sqldatareader sqlexception

我遇到了一个问题,我遇到了一个异常,但我不确定如何处理它,正如我所想的那样。

reader = command.ExecuteReader() 上,我收到以下异常消息:

An exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll but was not handled in user code.

没有任何数据可以通过,这很好,这就是我添加 if(reader.HasRows) 语句的原因,以防页面加载时没有数据。

我该如何处理?

下面是缩写代码:

protected void Page_Load(object sender, EventArgs e)
{
    using (SqlConnection connection = new SqlConnection(
        ConfigurationManager.ConnectionStrings["LocalConnection"].ConnectionString))
    {
        string selectSql = "SELECT tb1,tb2 FROM Stuff INNER JOIN User ON " + 
            "User.Stuff_FK=Stuff.ID";

        using (SqlCommand command = new SqlCommand(selectSql, connection))
        {
            // populate already existing data
            SqlDataReader reader;

            connection.Open();
            reader = command.ExecuteReader();
            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    TB1.Text = reader["tb1"].ToString();
                    TB2.Text = reader["tb2"].ToString();
                }
                reader.Close();
            }
            else
            {
                connection.Close();
            }
        }
    }
}

最佳答案

用户reserved keyword ,你需要将它包装在 [] 中:

string selectSql = "SELECT tb1,tb2 FROM Stuff INNER JOIN [User] ON [User].Stuff_FK=Stuff.ID";

出于这个原因,我会选择一个不同的表名。顺便说一下,Stuff也是一个 T-SQL 函数,但如果该表存在,它应该仍然可以工作。

关于c# - 如何解决 System.Data.SqlClient.SqlException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27377065/

相关文章:

c# - HttpException 未被异常过滤器捕获

c# - 使用 ExecuteReader 遍历行

c# - 仅强制从 DataReader 返回单行

c# - SQLDataReader 运行速度太慢取决于标准

c# - 在 SQL Server 2008 R2 中创建程序集时出错

c# - 使用 LINQ 连接 List<List<string>> 中的所有字符串

c# - 无法先从模型代码中删除 FK

sql - 为什么这些看似相似的查询具有如此截然不同的运行时间?

sql - OLE DB 或 ODBC 错误 : Login failed for user 'NT AUTHORITY\NETWORK SERVICE

mysql - 在其他 groupby 组中添加计数 = 0 的新行