是这样的,我有个会议管理系统,有个页面,是供秘书录入会议记录,同时进行任务分配.整个是一个可直接编辑的datagrid,样式如下:S/No Description Assigned To & Due Date
1 A Add/Delete
1.1 AA....... A 01/09/2006
B 02/09/2006 Add/Delete
C 03/09/20061.2 AB....... B 30/08/2006
C 31/08/2006 Add/Delete
D 05/09/20062 B2.1 BA....... A 31/08/2006 Add/Delete2.2 BB....... C 29/08/2006 Add/Delete
意思是这样的,如果没有分配任务的就表示是会议记录.如果是任务的话,A,B,C表示任务被分配者,然后为相应的完成时间.这些都是由相应的textbox显示,这样可以直接修改.然后Assigned To这一栏有个link button,用来打开一个窗口,供选择相应的任务和对应的时间.后面的Add/Delete是按钮,点击Add就在此行下面一行直接添加一行空的内容,如果点击Delete,就直接删除这行...但是这些都不会直接update到数据库,只是存储在session里面,然后重新绑定,在datagrid下方有个submit按钮,点击以后统一提交,而且这些内容是有顺序的.就是下次进来的时候,还是得按照提交以前,画面的顺序一模一样.数据库结构如下:表A: Item
ItemID MeetingID SNo Description IsBold IsItalic IsUnderline Type SortingOrder
这个就用来存储上面的内容(ItemID是自增量,为主键,作为其它表的外键被引用)
表B: Task
TaskID ItemID UserID DueDate Status
这个存储任务的具体信息...(TaskID是自增量,为主键,作为其它表的外键被引用)我在load datagrid的时候,用一个dataset,存储两个表信息...
第一个就是 select * from Item where meetingid=@meetingid
第二个就是 select * from task where itemid in (select itemid from item where meetingid=@meetingid)然后在开始load页面的时候,给datagrid_ItemDataBound事件加处理内容,主要是Assigned To & DueDate...问题在于,如果我添加,修改,删除以后,最后点击submit按钮的时候,从那个dataset怎么一次性update数据库吗?各位帮帮忙,多谢多谢,非常感谢!!尤其是我PM的1岁小女儿得了很重的病,我想我得做好好我的东西,不能给人家添麻烦啊...拜托各位好心人帮帮忙啊.
1 A Add/Delete
1.1 AA....... A 01/09/2006
B 02/09/2006 Add/Delete
C 03/09/20061.2 AB....... B 30/08/2006
C 31/08/2006 Add/Delete
D 05/09/20062 B2.1 BA....... A 31/08/2006 Add/Delete2.2 BB....... C 29/08/2006 Add/Delete
意思是这样的,如果没有分配任务的就表示是会议记录.如果是任务的话,A,B,C表示任务被分配者,然后为相应的完成时间.这些都是由相应的textbox显示,这样可以直接修改.然后Assigned To这一栏有个link button,用来打开一个窗口,供选择相应的任务和对应的时间.后面的Add/Delete是按钮,点击Add就在此行下面一行直接添加一行空的内容,如果点击Delete,就直接删除这行...但是这些都不会直接update到数据库,只是存储在session里面,然后重新绑定,在datagrid下方有个submit按钮,点击以后统一提交,而且这些内容是有顺序的.就是下次进来的时候,还是得按照提交以前,画面的顺序一模一样.数据库结构如下:表A: Item
ItemID MeetingID SNo Description IsBold IsItalic IsUnderline Type SortingOrder
这个就用来存储上面的内容(ItemID是自增量,为主键,作为其它表的外键被引用)
表B: Task
TaskID ItemID UserID DueDate Status
这个存储任务的具体信息...(TaskID是自增量,为主键,作为其它表的外键被引用)我在load datagrid的时候,用一个dataset,存储两个表信息...
第一个就是 select * from Item where meetingid=@meetingid
第二个就是 select * from task where itemid in (select itemid from item where meetingid=@meetingid)然后在开始load页面的时候,给datagrid_ItemDataBound事件加处理内容,主要是Assigned To & DueDate...问题在于,如果我添加,修改,删除以后,最后点击submit按钮的时候,从那个dataset怎么一次性update数据库吗?各位帮帮忙,多谢多谢,非常感谢!!尤其是我PM的1岁小女儿得了很重的病,我想我得做好好我的东西,不能给人家添麻烦啊...拜托各位好心人帮帮忙啊.
單表的話,直接設置好DataSet的UpdateCommand就好了,然后直接調用Update方法更新到数据库
{
System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection("连接字符串");
System.Data.SqlClient.SqlCommand cm = new System.Data.SqlClient.SqlCommand();
cm.Connection = cnn;
cm.CommandText = "select top 10 * from table1";
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(cm); DataTable dt = new DataTable();
da.Fill(dt);
da.FillSchema(dt,System.Data.SchemaType.Mapped);//这是必须的,要载入数据表结构
//下面插入多条数据
for(int i=0;i<10;i++)
{
DataRow newRow = dt.NewRow();
newRow[0] = 123;
newRow[1] = "abc";
//....
dt.Rows.Add(newRow);
}
//下面重新写回数据库
System.Data.SqlClient.SqlCommandBuilder cb = new System.Data.SqlClient.SqlCommandBuilder(da);//这句看起来没什么作用,但实际上很关键,如果没有这个就不能用da.Update方法
cnn.Open();
da.Update(dt);
cnn.Close(); dt.AcceptChanges();
}