此 SqlParameterCollection 中未包含带有 ParameterName“@Name”的 SqlParameter。

来源:百度知道 编辑:UC知道 时间:2024/06/21 15:09:37
这个类描述的是一个BBS的应用~~用了个存储过程~但是却一直有标题那样的报错~
protected void Submit_Click(object sender, EventArgs e)
{
string strconn = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=CellphoneWeb;Data Source=FENG-ABB7091877\\SQLEXPRESS ";
SqlConnection cn = new SqlConnection(strconn);
cn.Open();

SqlCommand cm = new SqlCommand("addguest",cn);

cm.CommandType = CommandType.StoredProcedure;
cm.Parameters.Add("Name", SqlDbType.NVarChar, 50);
cm.Parameters.Add("Email", SqlDbType.NVarChar, 50);
cm.Parameters.Add("Content", SqlDbType.NText);
cm.Parameters["@Name"].Value = NameBox.Text.ToString();//此 SqlParameterCollection 中未包含带有 ParameterName“@Name”的 SqlParameter
cm.Parameters["@Email"].Value = EmailBox.Text.ToString();
cm.Parame

cm.Parameters.Add("Name", SqlDbType.NVarChar, 50);

cm.Parameters["@Name"].Value = NameBox.Text.ToString();//此 SqlParameterCollection 中未包含带有 ParameterName“@Name”的 SqlParameter

“Name”与“@Name”
改成:cm.Parameters.Add("@Name", SqlDbType.NVarChar, 50);

我的理解是如果要用@Name就都要加@吧,比如:
cm.Parameters.Add("@Name", SqlDbType.NVarChar, 50);

没有创建SqlParameter的实例
这么改
cm.Parameters.Add(new SqlParameter("Name",SqlDbType.NVarChar,50);
cm.Parameters.Add(new SqlParameter("Email",SqlDbType.NVarChar,50);
cm.Parameters.Add(new SqlParameter("Content",SqlDbType.NText);

Over
如果答对,记得加分哦