0
foreach ( ListViewItem l in lvSA.Items)
{
      SqlConnection con = new SqlConnection("data source = .; database = ePartyDatabase; integrated security = true");
      con.Open();

      SqlCommand cmd = new SqlCommand("insert into PARTY_ROOMS(PR_ROOMNO,PR_RATES,PR_REMARK) values(" + l.SubItems[1].ToString() + "," + l.SubItems[3].ToString() + l.SubItems[4].ToString(), con);

       cmd.ExecuteNonQuery();

        con.Close();
}
4

2 に答える 2

1

それは次のとおりです。

SqlCommand cmd = new SqlCommand("insert into PARTY_ROOMS(PR_ROOMNO,PR_RATES,PR_REMARK) values('" + l.SubItems[1].Text + "','" + l.SubItems[3].Text + "','" + l.SubItems[4].Text + "')", con);

?

于 2013-02-14T10:02:59.220 に答える
0

あなたが私たちにいくつかの情報を提供してくれたので、あなたにSqlCommandは何か問題があると思います。

3 つの列 ( PR_ROOMNOPR_RATESPR_REMARK) を挿入しようとしましたが、VALUES 部分には 2 つの値がありました。

  • l.SubItems[1].ToString()
  • l.SubItems[3].ToString() + l.SubItems[4].ToString()

次のように、2 番目の値を 2 つの値に分ける必要があると思います。

values('" + l.SubItems[1].ToString() + "','" + l.SubItems[3].ToString() + "','" + l.SubItems[4].ToString() + "')", con);

MSDNからINSERTを使用する方法を確認してください。

parameterized SQLまた、常にクエリを使用することを忘れないで ください。あなたのコードは、SQL インジェクション攻撃に対してオープンです。

于 2013-02-14T10:06:32.657 に答える