dataGrid控件的保存问题

xshmeng 2003-08-25 11:09:49
各位同盟,小弟是.net新手,想问一下dataGrid组件如何进行编辑保存到数据库中?
...全文
30 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenhigh 2003-08-26
  • 打赏
  • 举报
回复
to xshmeng(爽爽) :
1.代码如下:
DataGridTableStyle ts = new DataGridTableStyle();
DataGridColumnStyle cs2 = new DataGridTextBoxColumn();
cs2.HeaderText = "标题"; //设置表格的标题头
cs2.Width = 550;
cs2.MappingName = InfoData.TOPIC_FIELD;
cs2.ReadOnly = false;

ts.GridColumnStyles.Add(cs2);
ts.SelectionBackColor = Color.Brown;
ts.GridColumnStyles.Add(cs1);
dataGrid1.TableStyles.Add(ts);
2.如果是单表操作的话,有可能的SqlDataAdapter.UpdateCommand没有设置好;
但是如果是多表更新的话,涉及的知识就比较多
你得参考“ADO.NET 中的数据并发”
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vbcon/html/vbtskPerformingOptimisticConcurrencyChecking.htm
91bct 2003-08-25
  • 打赏
  • 举报
回复
至于保存数据:
因为你对datagrid进行数据绑定,所以可以用数据适配器的update方法进行保存数据。
如下:
1.绑定方法:
private void DataGridBinding (OleDbConnection conn)
{
if(conn.State==ConnectionState.Closed)
conn.Open();
this.oleDbDataAdapter1.SelectCommand.CommandText=
"select field1 字段1,field2 字段2,field3 字段3 from myTable";
this.dataSet1.Table["myTable"].Clear();
this.oleDbDataAdapter1.Fill(this.dataSet1,"myTable");
this.dataGrid1.DataSource=this.dataSet1;
this.dataGrid1.DataMember=this.dataSet1.Table["myTable"].ToString();
}
2.保存方法:
private void SaveData()
{
this.BindingConText[this.dataSet1,"myTable"].EndCurrentEdit();
this.oleDbDataAdapter1.Update(this.dataSet1,"myTable");
}
别忘了上面的数据绑定是用数据适配器向导生成this.oleDbDataAdapter1和this.dataSet1以后做的。
91bct 2003-08-25
  • 打赏
  • 举报
回复
1.【改标题的英文字段改成中文名称】可以直接在datagrid的属性中改。
2.也可以在select语句中使用,如下:
select field1 字段1,field2 字段2,field3 字段3 from myTable where ...
这样得到的标题就是【字段1、字段2、字段3】了。
xshmeng 2003-08-25
  • 打赏
  • 举报
回复
对了,还有我要改标题的英文字段改成中文名称,比如将Code改成“编码”,请各位指教。
greenhill1 2003-08-25
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2177/2177916.xml?temp=.2734339

这里应该有你要的内容
greenhill1 2003-08-25
  • 打赏
  • 举报
回复
dataGrid1.DataSource = thisDataSet.Tables["作业"];

DataGridTableStyle dgts = new DataGridTableStyle();

dgts.MappingName = "作业";
DataGridTextBoxColumn TextCol = new DataGridTextBoxColumn();
TextCol.MappingName = "ID";
TextCol.HeaderText = "序号";
TextCol.Width = 0;
dgts.GridColumnStyles.Add(TextCol);

TextCol = new DataGridTextBoxColumn();
TextCol.MappingName = "科目";
TextCol.HeaderText = "科目";
TextCol.Width = 60;
dgts.GridColumnStyles.Add(TextCol);
这样就可以重新设置你的列名了;如果不想要显示该列只要将width属性设为0即可,
dataGrid1.CaptionText="你好";这样就可以将datagrid的标题头设置。

保存datagrid中某单元格的更改可以这样:
string sqlSelect="SELECT ID,分数 FROM 成绩 WHERE 年级="+"'"+Form2.toNew5+"'"+"AND 班级="+"'"+Form2.toNew6+"'"+"AND 日期="+"'"+Form2.selectDate1+"'"+"AND 科目="+"'"+Form2.kemu1+"'"+"AND 类型="+"'"+Form2.leixing+"'";

thisConnection.Open();

SqlDataAdapter thisAdapter=new SqlDataAdapter(sqlSelect,thisConnection);

SqlCommandBuilder thisBuilder=new SqlCommandBuilder(thisAdapter);

thisAdapter.Update(thisDataSet,"成绩");

thisConnection.Close();

MessageBox.Show("更新成功!");
只要将你要更改的列先加载到adpter中,象这样:SELECT ID,分数,... FROM 成绩,然后调用update就可以更新了
xshmeng 2003-08-25
  • 打赏
  • 举报
回复
91bct(菠菜) 先生,我想问你两件事:
1:表格的标题头用控件属性如何修改?
2:你的保存方法我试过了,在表格中新增一条数据后保存是没有问题的。可是当我修改一条记录的时候,用您的SaveData()就会蹦出个异常来。这是为什么呢,

请您指教。

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧