直接用DataAdapter.Update()?我用来显示的这个datagrid,是通过DataAdapter的查询,放到dataset,在显示出来的,我更改的这一行的纪录,更改之后,直接DataAdapter.Update()好像不能存到数据库吧?我是新手,不要笑话我呀~。
还有,怎么能够取到我修改的那行纪录的值呢?(我看那一行,看上去每个字段都像textbox)
还有,怎么能够取到我修改的那行纪录的值呢?(我看那一行,看上去每个字段都像textbox)
解决方案 »
- 2个ListBox怎么比较项内容?
- CPU始终进程50%?
- 想用c#编写一个小程序以实现检查键盘大小写锁定状态并显示到任务栏或者桌面上,请问如何实现?
- 怎么动态的添加button按钮。。。
- c# 获取方法的内存地址
- WndProc如何获得某个XX的消息。
- 為何我的datagridview中的欄位在查詢出結果後順序變了,是什麼原因?請教了。
- 一个简单的问题
- 急!C#中如何在textbox里用语句写回车
- C#中FolderBrowserDialog fbd = new FolderBrowserDialog();下如何解决新建文件夹重命名并保存文件的问题!急!
- C#中如何用split函数?
- 请教一个正则表达式的问题
就是TextBox哈
DataAdapter.Update()可以的但在数据库中一定要设置主键
xxxxDataAdapter.SelectCommand="xxxxxxxxxxx"; OleDbCommandBuilder xxxxCommandBuilder=new OleDbCommandBuilder(xxxxDataAdapter);
DataAdapter.Update();
一定要设置主键.
如果在Web里面,大家知道怎么增加一行吗?求教
string path1= @"c:\data1.mdb";
string strConn1 = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+ path1 +";";
OleDbConnection conn1 = new OleDbConnection(strConn1);
string sql1="select top 1 * from table1";
//OleDbCommand myCommand1=new OleDbCommand(sql1,conn1);
OleDbDataAdapter myCommand1=new OleDbDataAdapter(sql1,conn1);
conn1.Open ();
DataSet ds=new DataSet ();
myCommand1.Fill (ds,"table1");
string insertSql ="insert into table1(numb,price,mtotal,date1,cn,cfn,csn,dosa,rout,stren,mea1,vol,mea2,hospcode) "
+"values(@numb,@price,@mtotal,@date,@cn,@cfn,@csn,@dosa,@rout,@stren,@mea1,@vol,@mea2,@hospcode)"; //myCommand1.InsertCommand =new OleDbCommand (insertSql,conn1);
/////////////////////////////////////////////////////////////////////
//就是在这里设置command的insertcommand.
////////////////////////////////////////////////////////////////////
myCommand1.InsertCommand =new OleDbCommand ();
myCommand1.InsertCommand.CommandText =insertSql;
myCommand1.InsertCommand.Connection =conn1;
myCommand1.InsertCommand.Parameters.Add ("@numb",OleDbType.Double,20,"numb");
myCommand1.InsertCommand.Parameters.Add ("@price",OleDbType.Double,20,"price");
myCommand1.InsertCommand.Parameters.Add ("@mtotal",OleDbType.Double,20,"mtotal"); myCommand1.InsertCommand.Parameters.Add ("@date",OleDbType.VarChar ,255,"date1");
myCommand1.InsertCommand.Parameters.Add ("@cn",OleDbType.VarChar ,255,"cn");
myCommand1.InsertCommand.Parameters.Add ("@cfn",OleDbType.VarChar ,255,"cfn");
myCommand1.InsertCommand.Parameters.Add ("@csn",OleDbType.VarChar ,255,"csn");
myCommand1.InsertCommand.Parameters.Add ("@dosa",OleDbType.VarChar ,255,"dosa");
myCommand1.InsertCommand.Parameters.Add ("@rout",OleDbType.VarChar ,255,"rout");
myCommand1.InsertCommand.Parameters.Add ("@stren",OleDbType.VarChar ,255,"stren");
myCommand1.InsertCommand.Parameters.Add ("@mea1",OleDbType.VarChar ,255,"mea1");
myCommand1.InsertCommand.Parameters.Add ("@vol",OleDbType.VarChar ,255,"vol");
myCommand1.InsertCommand.Parameters.Add ("@mea2",OleDbType.VarChar ,255,"mea2");
myCommand1.InsertCommand.Parameters.Add ("@hospcode",OleDbType.VarChar ,255,"hospcode");
DataRow newrow;
int i=0;
foreach (DataRow datarow in myDataSet.Tables["table1"].Rows )
{
newrow=ds.Tables["table1"].NewRow ();
newrow[0]=datarow[0].ToString();
newrow[1]=datarow[1].ToString();
newrow[2]=datarow[2].ToString();
newrow[3]=datarow[3];
newrow[4]=datarow[4];
newrow[5]=datarow[5];
newrow[6]=datarow[6];
newrow[7]=datarow[7];
newrow[8]=datarow[8];
newrow[9]=datarow[9];
if (datarow[10].ToString() !=null)
newrow[10]=datarow[10];
else
newrow[10]=null; if (datarow[11].ToString() !=null)
newrow[11]=datarow[11];
else
newrow[11]=null;
if (datarow[12].ToString() !=null)
newrow[12]=datarow[12];
else
newrow[12]=null;
if (datarow[13].ToString() !=null)
newrow[13]=datarow[13];
else
newrow[13]=null;
ds.Tables["table1"].Rows.Add (newrow);
i=i+1;
listBox1.Items.Add (i.ToString () );
}
/////这里的update语句实际是调用之前设定的insertcommand来将记录插入到数据库中.
myCommand1.Update (ds,"table1");
}
如果还不行
建议找本书看看
我做过一个你可以这样:DataGrid里面加入edit按钮,通过这个完成update的功能
然后再Datagrid里面的editcommand事件里面写入
DataGrid.EditItemIndex = e.Item.ItemIndex;然后再在updatecommand事件里面写入正常的SqlCommand里的Update语句
sqlConnection1.Open();
SqlCommand comm = new SqlCommand();
comm=sqlconnection1.CreateCommand();
comm.CommandText="UPDATE DataBASE SET ID=.....";
comm.ExecuteNonQuery();
sqlConnection1.Close();
其中从DataGrid里面图取东西用((TextBox)e.Item.Cells[].Controls[0]).ToString()
cells[]里面写你需要的信息是grid里面第几列的,从0开始。就行了,我就知这样做的,成功实现