DataGridView更新多条数据问题!!! 急!!!!!在线等!!!!!!!!!

jiuaidaxin19 2008-07-16 11:29:11
一次更新datagridview里面的数据,代码如下:
public Boolean UpInfo(DataTable table)
{
String connString = "Data Source=ORAKSJH;user=u_ksjh;password=smksjh";
OracleConnection conn = new OracleConnection(connString);

try
{

OracleDataAdapter rar = new OracleDataAdapter();
conn.Open();

trans = conn.BeginTransaction();
OracleCommandBuilder cmdBuiler = new OracleCommandBuilder(rar);

rar.Update(table);

trans.Commit();
conn.Close();
}
catch (Exception e)
{
e.ToString();
trans.Rollback();
return false;
}


return true;
}
为什么不更新呢??请各位大虾指教!!!!
...全文
478 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjm2003 2008-07-17
  • 打赏
  • 举报
回复
个人从来都不喜欢用这种更新法,似乎是因为容易出错,一般都用循环来更新datagridview的数据到数据库。
如果你的问题实在解决不了,不妨用循环来更新数据库。修改datagridview时,ID列为readonly,更新时循环datagridview中所有行(set NAME=datagirdview1.rows[i].cells[0].tostring() .....)
sjm2003 2008-07-17
  • 打赏
  • 举报
回复
上面代码中dscpxx1这个dataset如果是自定义的,似乎要先填充
sjm2003 2008-07-17
  • 打赏
  • 举报
回复
  try
{
con = new OleDbConnection(constr);
con.Open();
OleDbCommand cmd = new OleDbCommand("Select St_CPID as 产品编号,St_CPName as 产品名称,St_CPAnquan as 安全存量 from TbStoreChanpinxinxi", con);
OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = cmd;
OleDbCommandBuilder cbuild = new OleDbCommandBuilder(da);
da.Update(dscpxx1, "TbStoreChanpinxinxi");//dscpxx1是自己在数据源类添加的DataSet生成的,似乎也可以是自定义的。
// dataGridView1.DataSource = dscpxx1.Tables["TbStoreChanpinxinxi"].DefaultView;
// MessageBox.Show("更新成功");
con.Close();
con.Dispose();
cmd.Dispose();
da.Dispose();
dscpxx1.Dispose();
}
这个是可以更新数据库的,虽然不是Oracle,但形式一样,只是语句不同。
jiuaidaxin19 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 sjm2003 的回复:]
HOHO,对oracle不熟。
[/Quote]
呵呵,非常感谢!!
sjm2003 2008-07-17
  • 打赏
  • 举报
回复
HOHO,对oracle不熟。
zzyhuian06142 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 jiuaidaxin19 的回复:]
引用 28 楼 zzyhuian06142 的回复:
你加个判断吧
if(table.HasChanged())
看看数据集里面有没有发生修改

没有发生改变,但是我取前台的datagridview取到了改变后的数据
[/Quote]
那你把datagridview的数据源捞取代码帖来看看
jiuaidaxin19 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 zzyhuian06142 的回复:]
你加个判断吧
if(table.HasChanged())
看看数据集里面有没有发生修改
[/Quote]
没有发生改变,但是我取前台的datagridview取到了改变后的数据
zzyhuian06142 2008-07-17
  • 打赏
  • 举报
回复
还有你datagridview的数据源是怎么得到的,一起贴出来看看
zzyhuian06142 2008-07-17
  • 打赏
  • 举报
回复
你加个判断吧
if(table.HasChanged())
看看数据集里面有没有发生修改
jiuaidaxin19 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 zzyhuian06142 的回复:]
OracleCommand cmd = new OracleCommand("SELECT * FROM CSHAREUSERINFO");
大哥看清楚
OracleCommand cmd = new OracleCommand("SELECT * FROM CSHAREUSERINFO",conn ); OK???
[/Quote]
还是不能更新???????
zzyhuian06142 2008-07-17
  • 打赏
  • 举报
回复
OracleCommand cmd = new OracleCommand("SELECT * FROM CSHAREUSERINFO");
大哥看清楚
OracleCommand cmd = new OracleCommand("SELECT * FROM CSHAREUSERINFO",conn ); OK???
jiuaidaxin19 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 zzyhuian06142 的回复:]
引用 23 楼 jiuaidaxin19 的回复:
问题是我已经按照上面的做了, 可结果还是不能更新到数据库里去啊
倒是datagridview更新了

你把你修改后的代码拿来看看
[/Quote]
public DataSet UpInfo(DataSet table,String tableName)
{
String connString = "Data Source=ORAKSJH;user=u_ksjh;password=smksjh";
OracleConnection conn = new OracleConnection(connString);
OracleTransaction trans = null;

try
{
OracleCommand cmd = new OracleCommand("SELECT * FROM CSHAREUSERINFO");
conn.Open();

trans = conn.BeginTransaction();
//trans = cmd.Transaction;

OracleDataAdapter rar = new OracleDataAdapter(cmd);
OracleCommandBuilder cmdBuiler = new OracleCommandBuilder(rar);

rar.Update(table.Tables[tableName]);
trans.Commit();
conn.Close();
}
catch (Exception e)
{
e.ToString();
trans.Rollback();
if (conn.State == ConnectionState.Open)
{
conn.Close();
}

}

return table;
}
zzyhuian06142 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 jiuaidaxin19 的回复:]
问题是我已经按照上面的做了, 可结果还是不能更新到数据库里去啊
倒是datagridview更新了
[/Quote]
你把你修改后的代码拿来看看
jiuaidaxin19 2008-07-17
  • 打赏
  • 举报
回复
问题是我已经按照上面的做了, 可结果还是不能更新到数据库里去啊
倒是datagridview更新了
zzyhuian06142 2008-07-17
  • 打赏
  • 举报
回复
这个查询只是得到表的信息而已,没有其他的作用,你也可以只查询但是没有任何值的
比如select * from 表 where 1<>1
我觉的这个查询只是指定了要更新的是哪张表(-_-个人觉的,看其他高手怎么回答了)
jiuaidaxin19 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 zzyhuian06142 的回复:]
public static DataSet SelectOracleSrvRows(string myConnection, string mySelectQuery, string myTableName)
{
OracleConnection myConn = new OracleConnection(myConnection);
OracleDataAdapter myDataAdapter = new OracleDataAdapter(mySelectQuery,myConn);
OracleCommandBuilder cb = new OracleCommandBuilder(myDataAdapter);

DataSet ds = new DataSet();
myDataAdapter.Fill(ds, myTableName);

//Code …
[/Quote]
我不明白为什么要查询?
如果是查询的话更新的也不是从datagridview中取得的数据啊
zzyhuian06142 2008-07-17
  • 打赏
  • 举报
回复
public static DataSet SelectOracleSrvRows(string myConnection, string mySelectQuery, string myTableName)
{
OracleConnection myConn = new OracleConnection(myConnection);
OracleDataAdapter myDataAdapter = new OracleDataAdapter(mySelectQuery,myConn);
OracleCommandBuilder cb = new OracleCommandBuilder(myDataAdapter);

DataSet ds = new DataSet();
myDataAdapter.Fill(ds, myTableName);

//Code to modify data in DataSet goes here...

//Without the OracleCommandBuilder this line would fail.
myDataAdapter.Update(ds, myTableName);
myConn.Close();
return ds;
jiuaidaxin19 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 carl5chao 的回复:]
public static DataSet SelectOracleSrvRows(string myConnection, string mySelectQuery, string myTableName)
{
OracleConnection myConn = new OracleConnection(myConnection);
OracleDataAdapter myDataAdapter = new OracleDataAdapter();
myDataAdapter.SelectCommand = new OracleCommand(mySelectQuery, myConn);
OracleCommandBuilder cb = new OracleCommandBuilder(myDataAdapter);

myConn.Open();
DataSet…
[/Quote]
你在你那边试了没有?
yagebu1983 2008-07-17
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20080709/09/fda49cd6-4ac3-49b8-85c9-8cd6291d7a1a.html
linlong1234 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 sjm2003 的回复:]

C# code try
{
con = new OleDbConnection(constr);
con.Open();
OleDbCommand cmd = new OleDbCommand("Select St_CPID as 产品编号,St_CPName as 产品名称,St_CPAnquan as 安全存量 from TbStoreChanpinxinxi", con);
OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = cmd;

[/Quote]

经测试 该方法可用。
加载更多回复(18)

110,891

社区成员

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

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

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