我在GridView中放入几个CheckBox,在更改时,总是提示异常详细信息: System.Data.OleDb.OleDbException: 标准表达式中数据类型不匹配。代码如下:: protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int Rid = Convert.ToInt32(((Label)GridView1.Rows[e.RowIndex].Cells[11].FindControl("lblRid")).Text);
string Rname = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].FindControl("txtRname")).Text;
CheckBox OrderSend = (CheckBox)GridView1.Rows[e.RowIndex].Cells[2].FindControl("chkOrderSend");
//CheckBox Production = ((CheckBox)GridView1.Rows[e.RowIndex].Cells[3].FindControl("chkProduction")).Checked;
//CheckBox Product = ((CheckBox)GridView1.Rows[e.RowIndex].Cells[4].FindControl("chkProduct")).Checked;
//CheckBox Material = ((CheckBox)GridView1.Rows[e.RowIndex].Cells[5].FindControl("chkMaterial")).Checked;
//CheckBox Client = ((CheckBox)GridView1.Rows[e.RowIndex].Cells[6].FindControl("chkClient")).Checked;
//CheckBox Provider = ((CheckBox)GridView1.Rows[e.RowIndex].Cells[7].FindControl("chkProvider")).Checked;
//CheckBox Employee = ((CheckBox)GridView1.Rows[e.RowIndex].Cells[8].FindControl("chkEmployee")).Checked;
//CheckBox Finance = ((CheckBox)GridView1.Rows[e.RowIndex].Cells[9].FindControl("chkFinance")).Checked;
//CheckBox User = ((CheckBox)GridView1.Rows[e.RowIndex].Cells[10].FindControl("chkUser")).Checked;
bool updateok;
//updateok = Convert.ToBoolean(DataOption.Option("update [Role] set [Rname]='" + Rname + "',[OrderSend]='" + OrderSend + "' ,[Production]='" + Production + "',[Product]='" + Product + "',[Material]='" + Material + "',[Client]='" + Client + "',[Provider]='" + Provider + "',[Employee]='" + Employee + "',[Finance]='" + Finance + "',[User]='" + User + "' where Rid=" + Rid));
updateok = Convert.ToBoolean(DataOption.Option("update [Role] set [Rname]='" + Rname + "',OrderSend='" + OrderSend.Checked + "' where Rid=" + Rid));
if (updateok == true)
{
GridView1.EditIndex = -1;
DataOption.Dispose();
this.BindToGridView();
} }
我用bool代替checkbox也不行!当注释所在checkbox我就可以更新!???
我要如何做才好??????
{
int Rid = Convert.ToInt32(((Label)GridView1.Rows[e.RowIndex].Cells[11].FindControl("lblRid")).Text);
string Rname = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].FindControl("txtRname")).Text;
CheckBox OrderSend = (CheckBox)GridView1.Rows[e.RowIndex].Cells[2].FindControl("chkOrderSend");
//CheckBox Production = ((CheckBox)GridView1.Rows[e.RowIndex].Cells[3].FindControl("chkProduction")).Checked;
//CheckBox Product = ((CheckBox)GridView1.Rows[e.RowIndex].Cells[4].FindControl("chkProduct")).Checked;
//CheckBox Material = ((CheckBox)GridView1.Rows[e.RowIndex].Cells[5].FindControl("chkMaterial")).Checked;
//CheckBox Client = ((CheckBox)GridView1.Rows[e.RowIndex].Cells[6].FindControl("chkClient")).Checked;
//CheckBox Provider = ((CheckBox)GridView1.Rows[e.RowIndex].Cells[7].FindControl("chkProvider")).Checked;
//CheckBox Employee = ((CheckBox)GridView1.Rows[e.RowIndex].Cells[8].FindControl("chkEmployee")).Checked;
//CheckBox Finance = ((CheckBox)GridView1.Rows[e.RowIndex].Cells[9].FindControl("chkFinance")).Checked;
//CheckBox User = ((CheckBox)GridView1.Rows[e.RowIndex].Cells[10].FindControl("chkUser")).Checked;
bool updateok;
//updateok = Convert.ToBoolean(DataOption.Option("update [Role] set [Rname]='" + Rname + "',[OrderSend]='" + OrderSend + "' ,[Production]='" + Production + "',[Product]='" + Product + "',[Material]='" + Material + "',[Client]='" + Client + "',[Provider]='" + Provider + "',[Employee]='" + Employee + "',[Finance]='" + Finance + "',[User]='" + User + "' where Rid=" + Rid));
updateok = Convert.ToBoolean(DataOption.Option("update [Role] set [Rname]='" + Rname + "',OrderSend='" + OrderSend.Checked + "' where Rid=" + Rid));
if (updateok == true)
{
GridView1.EditIndex = -1;
DataOption.Dispose();
this.BindToGridView();
} }
我用bool代替checkbox也不行!当注释所在checkbox我就可以更新!???
我要如何做才好??????
解决方案 »
- 100分的题目啊,快来啊~~~
- Asp.net 用C#写到时计代码
- 求匹配中文网址的正则表达式
- AjaxPro上传到服务器问题
- 关于新闻发布的问题(新手求教)
- Response.Cookies.Clear(); 和 Request.Cookies.Clear();的区别?
- asp.net页面提示信息?
- 请各位帮忙哪有vs.net的使用说明? 谢谢!
- 有关 asp.net 开发网站的问题,请高手指点
- 请教:asp.net里,怎么在web服务器端操作excel?谢谢!
- 关于treeview控件接点定位的问题,急~~~~~
- (在线急等-好心人帮忙)安装好了iis及.net2003框架后为什么还是不能运行asp.net(2003)工程
((CheckBox)GridView1.Rows[e.RowIndex].FindControl("chkProduction")).Checked;
试一下。
updateok = "update [Role] set [Rname]='" + Rname + "',OrderSend=" + OrderSend.Checked?"-1":"0" + " where Rid=" + Rid;
{
if (this.IsValid)
{
string name =DataOption.FunStr(Rname.Text);
if (name == "" || name == null||name=="无")
{
Response.Write("<script language='javascript'>alert('不能为空!');history.go(-1);</script>");
Response.End();
}
bool OrderSend = chkOrderSend.Checked;
bool Production=chkProduction.Checked;
bool Product=chkProduct.Checked;
bool Material=chkMaterial.Checked;
bool Client = chkClient.Checked;
bool Provider=chkProvider.Checked;
bool Employee = chkEmployee.Checked;
bool Finance = chkFinance.Checked;
bool User=chkUser.Checked;
bool InsertOK;
//string Sql = "insert into Role(Rname) values('" + name + "')";
string Sql = "insert into Role(Rname,OrderSend) values('" + name + "','" + OrderSend + "')";
InsertOK = DataOption.Option(Sql);
if (InsertOK == true)
{
Response.Write("<script language='javascript'>alert('成功添加!');window.location.href='RoleManager.aspx'</script>");
}
DataOption.Dispose(); } }
同样我在添加时也说标准表达式中数据类型不匹配。是否型数据怎样用?
是/否型字段在SQL语句两边不要加单引号。
改成这样:
string Sql = "insert into Role(Rname,OrderSend) values('" + name + "'," + OrderSend + ")";
updateok = "update [Role] set [Rname]='" + Rname + "',OrderSend=" + OrderSend.Checked+" + " where Rid=" + Rid;我看了看,怎么少一个单引号??以后看贴可要更认真