2012-05-07 80 views
2

我正从SQL查询填充数据集,这样读取数据集

cmd_sql.CommandText = " SELECT BrDok " + 
         " FROM ordersstavke " + 
         " WHERE SifParFil = '" + rw_mat["sifskl_kor"] + "'"; 

MySqlDataAdapter sql_adapter = new MySqlDataAdapter(cmd_sql); 
DataSet ds_dok = new DataSet("ordersstavke"); 
sql_adapter.Fill(ds_dok); 

现在我想提取数据的SQL更新设置值,像这样的

myQuery = "UPDATE ordersstavke " + 
      "SET BrDok = '" + rw_mat["brdok"] + "', " + 
      "SifParFil = '" + rw_mat["sifskl_kor"] + "', " + 
      "WHERE BrDok = " + ds_dok.Tables["ordersstavke"].Rows[0]["BrDok"] + "'"; 

我想这ds_dok.Tables["ordersstavke"].Rows[0]["BrDok"]但我得到一个错误, 我当时就想,做这样的事情

string BrDok; 
BrDok = ds_dok.["BrDok"].ToString(); 

但没有,如何提取该BrDok或只是把它放入程序?

感谢盈方!

+2

你在这里得到的错误是什么?请接受以前问题的答案,如果他们帮助你的话。 –

+0

Shitti错误:对象引用未设置为对象的实例。 – CrBruno

+0

您是否阅读过以前的问题的答案?这里同样的错误。 – Steve

回答

0

如果您的DataSet类提供一个字符串参数,那么这将是该数据集的名称,而不是数据表名称。数据库中没有提供数据集名称的表,因此请在填写数据集时给它。写下面的东西。

DataSet ds_dok = new DataSet(); 
sql_adapter.Fill(ds_dok,"ordersstavke"); 

并且您可以将所有剩余的代码写入您的代码部分。

而且你的第二次更新查询有一些语法错误,看它像下面

myQuery = "UPDATE ordersstavke " +   "SET BrDok = '" + rw_mat["brdok"] + "', " 
+   "SifParFil = '" + rw_mat["sifskl_kor"] + "', " +   "WHERE BrDok 
= '" + ds_dok.Tables["ordersstavke"].Rows[0]["BrDok"] + "'"; 

你忘了一开始倒逗号在其中条款。

+0

我仍然有语法错误,但我在where子句中添加了逗号。 – CrBruno

+0

请将修改后的查询作为编辑发布在问题中 –

+0

明白了,我在WHERE之前有一个逗号,我需要更好地查看代码。感谢所有 – CrBruno

1

让它

DataSet ds_dok = new DataSet("ordersstavke"); 
sql_adapter.Fill(ds_dok,"BrDok"); 

然后使用

ds_dok.Tables["BrDok"].Rows[0]["BrDok"].ToString() 
+0

好吧,这个工程,但我得到了一个错误你的SQL语法错误;请查看与您的MySQL服务器版本相对应的手册,以便在第1行 – CrBruno

+0

@CrBruno'WHERE BrDok ='565''附近使用正确的语法,请参阅我给出的代码中的查询修改。 –

+0

谢谢赛,它的作品! – CrBruno

1

试试这个

ds_dok.Tables[0].Rows[0]["BrDok"] 
0

只是一个小提示的SQL命令。你应该使用sql-parameters来执行sql注入。