请教各位大虾一菜鸟问题:GridView编辑数据时如何能让表头显示为字段的中文注释并且在数据更新时不出错?
1、想要达到的效果:GridView编辑数据时让表头显示为字段的中文注释方便用户修改其值(表的字段有90多个,都是英
文字段名),更新后表头还显示为字段的中文注释。说明:这里用GridView更新数据,SQLDataSource作为
GridView的DataSource,数据源是在程序中动态绑定,数据库是Oracle9i
2、刚开始我是这样做的:
数据编辑(RowEditing事件中) GridView1.EditIndex = e.NewEditIndex;
GridView1.HeaderRow.Cells[1].Text="中文注释1";
GridView1.HeaderRow.Cells[2].Text="中文注释2"�%BPOST https://forum.csdn.net/PointForum/Forum/PostT��RowUpdating事件中):
SqlDataSource1.UpdateCommand = s3;
SqlDataSource1.UpdateCommandType = SqlDataSourceCommandType.Text;
SqlDataSource1.DataBind();
GridView1.HeaderRow.Cells[1].Text="中文注释1";
GridView1.HeaderRow.Cells[2].Text="中文注释2";
但这样做编辑时、更新后表头显示的还是英文字段名,GridView1.HeaderRow.Cells[1].Text="中文注释
1"好象没起作用
3、后来我又改为下面的方法:
数据编辑(RowEditing事件中),数据绑定变为这样:
SqlDataSource1.ConnectionString = s2;
SqlDataSource1.SelectCommand = "select YTMC, BDND as 中文注释1, DZCL as 中文注释2 from
table1 where YTMC='YC1'"; //这里省略了N个字段
SqlDataSource1.SelectCommandType = SqlDataSourceCommandType.Text;
SqlDataSource1.DataSourceMode = SqlDataSourceMode.DataSet;
SqlDataSource1.DataBind();
下面这两句不要了:GridView1.HeaderRow.Cells[1].Text="中文注释1";
GridView1.HeaderRow.Cells[2].Text="中文注释2";
这样数据编辑时表头显示的是中文注释
但是数据更新时出错:
s3 = "UPDATE table1 SET BDND=:BDND, DZCL=:DZCL where YTMC=:YTMC";
SqlDataSource1.UpdateCommand = s3;
SqlDataSource1.UpdateCommandType = SqlDataSourceCommandType.Text;
SqlDataSource1.DataBind(); 到这里就出错了,错误是:
执行当前 Web 请求期间生成了未处理的异常。堆栈跟踪:[OracleException (0x80131938): ORA-01036: 非法的变量名/编号
但如果我把数据编辑里的语句
qlDataSource1.SelectCommand = "select YTMC, BDND as 中文注释1, DZCL as 中文注释2";
改为: qlDataSource1.SelectCommand = "select * from table1 where YTMC='YC1'";
则不会出错,但是没有达到我的目的
请各位大虾不吝赐教!小妹这里先行谢过了!