从数据集中读取数据

时间:2012-05-07 09:53:32

标签: c#

我有从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 update的数据集中提取值,就像这个

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或者只是将它放入程序中?

感谢前方!

4 个答案:

答案 0 :(得分:1)

成功

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

然后使用

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

答案 1 :(得分:1)

试试这个

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

答案 2 :(得分:0)

如果为数据集类提供字符串参数,那么它将是数据集名称而不是数据表名称。并且数据库中没有为数据集提供名称的表,因此在填充数据集时给出它。写下面的东西。

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"] + "'";

您忘记在 where 子句中添加一个起始的倒置逗号。

答案 3 :(得分:0)

只是对sql-command的一小部分提示。你应该使用sql-parameters来进行sql-injection。