【发布时间】:2011-04-30 00:00:48
【问题描述】:
我第一次从 ASP.NET/C# 进行插入时遇到了一个小问题。每次运行此代码时,我都会收到以下错误:“ ExecuteNonQuery:CommandText 属性尚未初始化” 有谁知道这是什么意思以及我如何解决它?
提前致谢!
string sqlQuery = "INSERT INTO ATI_LOG_IO (Date, Connect_Time, Disconnect_Time, ATI_Rep, Reason_For_Access, Property_Contact, Case_Number, Comments, Property_ID)";
sqlQuery += "VALUES (@Today, @Connect, @Disconnect, @Rep, @Reason, @Contact, @CaseNum, @Comments, @PropertyID)";
using (SqlConnection dataConnection = new SqlConnection(connectionString))
{
using (SqlCommand dataCommand = dataConnection.CreateCommand())
{
dataConnection.Open();
dataCommand.CommandType = CommandType.Text;
dataCommand.CommandText = sqlQuery;
dataCommand.Parameters.Add("@Today", DateTime.Today.ToString());
dataCommand.Parameters.Add("@Connect", txtInDate.Text + " " + fromHrs.Text + ":" + fromMins.Text + ":00");
dataCommand.Parameters.Add("@Disconnect", txtOutdate.Text + " " + toHrs.Text + ":" + fromMins.Text + ":00");
dataCommand.Parameters.Add("@Rep", repID);
dataCommand.Parameters.Add("@Reason", txtReason.Text);
dataCommand.Parameters.Add("@Contact", txtContact.Text);
dataCommand.Parameters.Add("@CaseNum", txtCaseNum.Text);
dataCommand.Parameters.Add("@Comments", txtComments.Text);
dataCommand.Parameters.Add("@PropertyID", lstProperties.SelectedValue);
dataCommand.ExecuteNonQuery();
dataConnection.Close();
}
}
【问题讨论】:
-
SqlParameterCollection.Add Method (String, Object)已过时。 msdn.microsoft.com/en-us/library/9dd8zze1%28v=vs.80%29.aspx。试试这些:使用@->Parameters.Add(SqlParameter),Parameters.AddRange(SqlParameter[])or ,不使用@->Parameters.AddWithValue(String, Object)