各位高人,求救呀!由于我的系统用到的窗体比较的多,要求输入的也很多,因此我想在进窗体在datagrid中选中某一行的时候,就可以对数据进行修改,然后保存进数据库,这样就可以实现对任何窗体修改对应的信息。但是不知道这个代码该怎么写,请各位高人指点一下!小弟在此谢过啦!急,在线等待~~~~~~~
解决方案 »
- 如何解决“已有打开的与此命令相关联的DataReader,必须首先将它关闭。”错误?
- 打印Table分页问题
- C#中怎样把数组里面的数生成 X轴和Y轴 那个坐标图 求解 求代码
- 小妹初来请多多指教!关于dropdownlist的一个小小问题,但是困扰我快一个月了,实在解决不了!!!5555
- #############百分求在网页上如何显示股票走势图###########
- 我要学习连接数据库,请各位帮忙啊
- 有4个数字,随机输出一个数字,求代码
- C#中如果给EXECL单元格设为百分比?
- VS.net水晶报表不能用了,请问怎么办啊?在线等待...
- DataGrid中的cell如何捆绑ComboBox
- 新手急用问题,我在form1里定义了一个int a 和一个int b .我想把a,b 的两个数值在form2中也能用.请问如何解决,高手们帮帮忙好吗?小弟在线
- 只剩最后40分了,急问一个NHibernate的问题,多对一的关系,请各位帮帮忙。
是什么呢?
是行号还是其他的什么的?
或者把该行的id取出来,更新回数据库的时候就用这个id更新数据库。
//--------1---------------------------------
DataSet ds = new DataSet();
ds = 返回的数据集;
datagrid.DataSource = ds.Table["tablename"];//--------2---------------------------------
//在点击保存按钮时
dt = ((DataTable)datagrid.DataSource).GetChanges();
if(dt.Rows.Count!=0)
调用一个自定义的方法来出来,这里建议你参考MSDN里的类库CommandBuilder的使用(如OleDbCommandBuilder、OracleCommandBuilder和SqlCommandBuilder),如:public override int SqlUpdate(string sCmmandText,DataTable dt,string dtname)
{ sqlConn = dbc.SqlDBConnection();
sqlAdapt = new SqlDataAdapter(sCmmandText,sqlConn);
SqlCommandBuilder sqlCb = new SqlCommandBuilder(sqlAdapt);
sqlCb.RefreshSchema(); try
{
if(sqlConn.State == ConnectionState.Closed)
sqlConn.Open(); retValue = sqlAdapt.Update(dt); }
catch(SqlException ex)
{
System.IO.StreamWriter sw = System.IO.File.AppendText(@"C:\ErrLog.txt");
sw.WriteLine("数据库错误发生在 " +
DateTime.Now.ToString(CultureInfo.CurrentCulture)
+ ". 详细信息:" + ex.Message);
sw.Close();
return 0;
}
catch(System.Exception ex)
{
System.IO.StreamWriter sw =
System.IO.File.AppendText(@"C:\ErrLog.txt");
sw.WriteLine("一般性错误发生在 " +
DateTime.Now.ToString(CultureInfo.CurrentCulture)
+ ". 详细信息:" + ex.Message);
sw.Close();
return 0;
}
finally
{
sqlConn.Close();
} return retValue; }
private SqlCommandBuilder sqlbuilder;
public void datasetbacksql(string tabel)
{
adapter=new SqlDataAdapter(sql,conn);
sqlbuilder=new SqlCommandBuilder(adapter);
conn.Open();
try
{
adapter.Update(staticdata.dataset,tabel);
}
catch(Exception err)
{
MessageBox.Show(err.Message);
}
conn.Close(); }