ExecuteScalar()---输入字符串错误

时间:2015-03-27 04:27:24

标签: c# asp.net

我正在建立一个论坛进行在线讨论,并在创建论坛后,我希望用户写文章这是我得到的全部

输入字符串的格式不正确。

  

说明:执行期间发生未处理的异常   当前的网络请求。请查看堆栈跟踪了解更多信息   有关错误的信息以及它在代码中的起源。

     

异常详细信息: System.FormatException:输入字符串不在   格式正确。

     

来源错误:

     

第43行:cmd.Parameters.Add(“@ MessageID”,   System.Data.SqlDbType.Int,10,“MessageID”);第44行:
  cmd.Parameters [“@ MessageID”]。Value = e.Row.Cells [0] .Text;第45行:
  string count =(cmd.ExecuteScalar()。ToString());

     

源文件: c:\ Users \ A \ Documents \ Visual Studio   2010 \ WebSites \ ODF \ Default2.aspx.cs行:45

这是我在cs文件中的代码

    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        SqlConnection CN = new SqlConnection("Data Source=.\\;Initial Catalog=ODF;Integrated Security=True");
        CN.Open();
        SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM [Comments] WHERE [MessageID] = @MessageID", CN);
        cmd.Parameters.Add("@MessageID", System.Data.SqlDbType.Int, 10, "MessageID");
        cmd.Parameters["@MessageID"].Value = e.Row.Cells[0].Text;
        string count = (cmd.ExecuteScalar().ToString());
        e.Row.Cells[4].Text = count;
        //for column2 postedby

        CN.Close();
    }

请帮忙

1 个答案:

答案 0 :(得分:1)

改变这个:

cmd.Parameters.Add("@MessageID", System.Data.SqlDbType.Int, 10, "MessageID");
cmd.Parameters["@MessageID"].Value = e.Row.Cells[0].Text;

对此:

cmd.Parameters.Add("@MessageID", System.Data.SqlDbType.Int).Value = e.Row.Cells[0].Text;