无法将listview中的数据插入到sql数据库中

时间:2013-02-14 09:58:08

标签: c# sql

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();
}

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

由于您提供了一些信息,我认为您的SqlCommand存在问题。

您尝试插入3列(PR_ROOMNOPR_RATESPR_REMARK),但在您的VALUES部分中,您有2个值;

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

我认为你需要将你的第二个值分成两个值,比如;

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

查看如何使用 MSDN 中的 INSERT

请记住,始终使用 parameterized SQL 查询。您的代码是针对 SQL Injection 攻击开放的。