我如何解决System.Data.SqlClient.SqlException异常

时间:2014-12-09 10:48:20

标签: c# sql sqldatareader sqlexception

我遇到了一个问题,我遇到了异常情况而且我不知道如何处理它,就像我想的那样。

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

  

类型' System.Data.SqlClient.SqlException'的异常发生在   System.Data.dll但未在用户代码中处理。

没有任何数据可以通过,这很好,这就是为什么我添加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();
            }
        }
    }
}

1 个答案:

答案 0 :(得分:4)

Userreserved keyword,您需要将其打包在[]中:

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

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