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を抽出する方法、または単に手順に入れる方法はありますか?

よろしくお願いします!

4

4 に答える 4

1

成功する

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

次に、

ds_dok.Tables["BrDok"].Rows[0]["BrDok"].ToString()
于 2012-05-07T09:56:30.820 に答える
1

これを試して

ds_dok.Tables[0].Rows[0]["BrDok"]
于 2012-05-07T10:10:26.963 に答える
0

データセットクラスに文字列引数を指定すると、データテーブル名ではなくデータセット名になります。また、データベースにはデータセットに指定した名前のテーブルがないため、データセットに入力するときに指定してください。以下のようなものを書いてください。

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

残りのすべてのコードは、コード部分にそのまま書き込むことができます。

また、2番目の更新クエリに構文エラーがあります。以下のように表示されます

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

where句に最初の逆コンマを入れるのを忘れました。

于 2012-05-07T10:06:46.903 に答える
0

sql-commandへのほんの小さなヒント。sql-injectionを優先するには、sql-parametersを使用する必要があります。

于 2012-05-07T10:33:29.530 に答える