问题描述
protectedvoidGridView1_RowCommand(objectsender,GridViewCommandEventArgse){if(e.CommandName=="New"){stringStudentTitle=((TextBox)GridView1.FooterRow.FindControl("Newname")).Text;if(StudentTitle.Trim()==""){ErrorMsg.Text="请输入姓名";return;}stringStudentconcert=((TextBox)GridView1.FooterRow.FindControl("Newconcert")).Text;stringsql="InsertIntoliuy(name,concert)";sql+="Values(@name,@concert)";SqlDataSource1.InsertCommand=sql;SqlDataSource1.InsertParameters.Add("@name",TypeCode.String,StudentTitle);SqlDataSource1.InsertParameters.Add("@concert",TypeCode.String,Studentconcert);SqlDataSource1.Insert();}if(e.CommandName=="Update"){stringStudentTitle=((TextBox)GridView1.Rows[GridView1.EditIndex].FindControl("uname")).Text;stringStudentconcert=((TextBox)GridView1.Rows[GridView1.EditIndex].FindControl("uconcert")).Text;stringStudentID=GridView1.DataKeys[GridView1.EditIndex].Value.ToString();stringsql="UpdateliuySetname=@name,concert=@concertWhereid=@id";SqlDataSource1.UpdateCommand=sql;SqlDataSource1.UpdateCommandType=SqlDataSourceCommandType.Text;SqlDataSource1.UpdateParameters.Add("@name",TypeCode.String,StudentTitle);SqlDataSource1.UpdateParameters.Add("@concert",TypeCode.String,Studentconcert);SqlDataSource1.UpdateParameters.Add("@id",TypeCode.Int32,StudentID);SqlDataSource1.Update();}}必须声明变量'@name'。说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息:System.Data.SqlClient.SqlException:必须声明变量'@name'。
解决方案
解决方案二:
会不会是@name后有空格的原因?把引号内的空格都去掉试试
解决方案三:
啊`不会吧空格都不行好的我试下`
解决方案四:
还不是不行哦``里面是没有空格的``
解决方案五:
<asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"DataKeyNames="id"AllowPaging="true"AllowSorting="true"PageSize="5"DataSourceID="SqlDataSource1"ShowFooter="true"OnRowCommand="GridView1_RowCommand"><Columns><asp:BoundFieldDataField="id"HeaderText="id"InsertVisible="False"ReadOnly="True"Visible="false"SortExpression="id"/><asp:TemplateFieldHeaderText="姓名"SortExpression="name"><ItemTemplate><%#Eval("name")%></ItemTemplate><EditItemTemplate><asp:TextBoxID="uname"runat="server"Text='<%#Eval("name")%>'></asp:TextBox></EditItemTemplate><FooterTemplate><asp:TextBoxID="Newname"runat="server"></asp:TextBox></FooterTemplate></asp:TemplateField><asp:TemplateFieldHeaderText="内容"SortExpression="concert"><ItemTemplate><%#Eval("concert")%></ItemTemplate><EditItemTemplate><asp:TextBoxID="uconcert"runat="server"Text='<%#Eval("concert")%>'></asp:TextBox></EditItemTemplate><FooterTemplate><asp:TextBoxID="Newconcert"runat="server"></asp:TextBox></FooterTemplate></asp:TemplateField><asp:CommandFieldButtonType="Button"ShowCancelButton="true"ShowDeleteButton="true"ShowEditButton="true"CancelText="取消"DeleteText="删除"UpdateText="更新"EditText="修改"HeaderText="操作"InsertVisible="false"ShowInsertButton="true"NewText="添加"/></Columns></asp:GridView>asp是这样的我是要接受那些变量插入到数据库``怎么总是提示那样的错误
解决方案六:
把TypeCode.String去掉SqlDataSource1.InsertParameters.Add("@name",StudentTitle);
解决方案七:
SqlDataSource1.InsertParameters.Add("@name",TypeCode.String,StudentTitle);@name后面不要用空格
解决方案八:
没有空格的啊`还是不行你的方法都试过``会不会数据要设置啊``
解决方案九:
aspx部分:<asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"DataKeyNames="id"AllowPaging="true"AllowSorting="true"PageSize="5"DataSourceID="SqlDataSource1"ShowFooter="true"OnRowCommand="GridView1_RowCommand"><Columns><asp:BoundFieldDataField="id"HeaderText="id"InsertVisible="False"ReadOnly="True"Visible="false"SortExpression="id"/><asp:TemplateFieldHeaderText="姓名"SortExpression="name"><ItemTemplate><%#Eval("name")%></ItemTemplate><EditItemTemplate><asp:TextBoxID="uname"runat="server"Text='<%#Eval("name")%>'></asp:TextBox></EditItemTemplate><FooterTemplate><asp:TextBoxID="Newname"runat="server"></asp:TextBox></FooterTemplate></asp:TemplateField><asp:TemplateFieldHeaderText="内容"SortExpression="concert"><ItemTemplate><%#Eval("concert")%></ItemTemplate><EditItemTemplate><asp:TextBoxID="uconcert"runat="server"Text='<%#Eval("concert")%>'></asp:TextBox></EditItemTemplate><FooterTemplate><asp:TextBoxID="Newconcert"runat="server"></asp:TextBox></FooterTemplate></asp:TemplateField><asp:CommandFieldButtonType="Button"ShowCancelButton="true"ShowDeleteButton="true"ShowEditButton="true"CancelText="取消"DeleteText="删除"UpdateText="更新"EditText="修改"HeaderText="操作"InsertVisible="false"ShowInsertButton="true"NewText="添加"/></Columns></asp:GridView>cs部分:protectedvoidGridView1_RowCommand(objectsender,GridViewCommandEventArgse){if(e.CommandName=="New"){stringStudentTitle=((TextBox)GridView1.FooterRow.FindControl("Newname")).Text;if(StudentTitle.Trim()==""){ErrorMsg.Text="请输入姓名";return;}stringStudentconcert=((TextBox)GridView1.FooterRow.FindControl("Newconcert")).Text;stringsql="InsertIntoliu(name,concert)Values(@name,@concert)";SqlDataSource1.InsertCommand=sql;SqlDataSource1.InsertParameters.Add("@name",TypeCode.String,StudentTitle);SqlDataSource1.InsertParameters.Add("@concert",TypeCode.String,Studentconcert);SqlDataSource1.Insert();}if(e.CommandName=="Update"){stringStudentTitle=((TextBox)GridView1.Rows[GridView1.EditIndex].FindControl("uname")).Text;stringStudentconcert=((TextBox)GridView1.Rows[GridView1.EditIndex].FindControl("uconcert")).Text;stringStudentID=GridView1.DataKeys[GridView1.EditIndex].Value.ToString();stringsql="UpdateliuySetname=@name,concert=@concertWhereid=@id";SqlDataSource1.UpdateCommand=sql;SqlDataSource1.UpdateCommandType=SqlDataSourceCommandType.Text;SqlDataSource1.UpdateParameters.Add("@name",TypeCode.String,StudentTitle);SqlDataSource1.UpdateParameters.Add("@concert",TypeCode.String,Studentconcert);SqlDataSource1.UpdateParameters.Add("@id",TypeCode.Int32,StudentID);SqlDataSource1.Update();}}请高手在看下`那里是没有空格的`我运行后执行插入添加中是提示变量问题错误:必须声明变量'@name'。说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息:System.Data.SqlClient.SqlException:必须声明变量'@name'。源错误:行60:SqlDataSource1.UpdateParameters.Add("@id",TypeCode.Int32,StudentID);行61:行62:SqlDataSource1.Update();行63:}行64:必须声明变量'@name'。说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息:System.Data.SqlClient.SqlException:必须声明变量'@name'。源错误:行42:SqlDataSource1.InsertParameters.Add("@concert",TypeCode.String,Studentconcert);行43:行44:SqlDataSource1.Insert();行45:}行46:不知道是什么问题,在线等````!!谢谢
解决方案十:
SqlDataSource1.InsertCommand=newSqlCommand(InsertIntoliu(name,concert)Values(@name,@concert));SqlDataSource1.InsertParameters.Add("@name",TypeCode.String,StudentTitle);
解决方案十一:
楼上还在吗?说明:在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。编译器错误信息:CS0029:无法将类型“System.Data.SqlClient.SqlCommand”隐式转换为“string”源错误:行39://stringsql="InsertIntoliu(name,concert)Values(@name,@concert)";行40://SqlDataSource1.InsertCommand=sql;行41:SqlDataSource1.InsertCommand=newSqlCommand("InsertIntoliu(name,concert)Values(@name,@concert)");行42:行43:SqlDataSource1.InsertParameters.Add("@name",StudentTitle);