错误消息156 C#保存失败

时间:2015-07-25 04:14:58

标签: c# datagridview sqlcommand

我现在使用此代码一段时间后突然停止工作并将错误放在关键工作附近'交易'这是我的数据表名称 我无法找到任何问题,请你帮忙吗?非常感谢你

这是我的代码

 try
        {
            foreach (DataGridViewRow items in dataGridView1.Rows)
            {
                conn.Close();
                conn.Open();

                string buy_unitname = items.Cells[0].Value.ToString();
                string buy_quantity = items.Cells[1].Value.ToString();
                string buy_srp = items.Cells[2].Value.ToString();
                string buy_transNo = items.Cells[3].Value.ToString();
                string buy_date = items.Cells[4].Value.ToString();
                string buy_total_srp = items.Cells[5].Value.ToString();
                string buy_cart_no = items.Cells[6].Value.ToString();

                string str_conn2 ="insert into Transaction(UnitName,Quantity,SRP,TransactionNumber,Date,Total_SRP,Cart_no) values (@unitname_1,@quantity_1,@srp_1,@trans_1,@date_1,@total_srp_1,@cart_no_1)";
                SqlCommand sqlcomm = new SqlCommand(str_conn2, conn);
                sqlcomm.Parameters.AddWithValue("@unitname_1", buy_unitname);
                sqlcomm.Parameters.AddWithValue("@quantity_1", buy_quantity);
                sqlcomm.Parameters.AddWithValue("@srp_1", buy_srp);
                sqlcomm.Parameters.AddWithValue("@trans_1", buy_transNo);
                sqlcomm.Parameters.AddWithValue("@date_1", buy_date);
                sqlcomm.Parameters.AddWithValue("@total_srp_1", buy_total_srp);
                sqlcomm.Parameters.AddWithValue("@cart_no_1", buy_cart_no);
                sqlcomm.ExecuteNonQuery();
                conn.Close();
            }

1 个答案:

答案 0 :(得分:0)

在这里我只能看到一件问题。您为dataGridView中的每一行打开和关闭SQL连接这一事实可能会导致一些时序问题。

可以试试这个:

conn.Close();
conn.Open();

foreach (DataGridViewRow items in dataGridView1.Rows)
{
    string buy_unitname = items.Cells[0].Value.ToString();
    string buy_quantity = items.Cells[1].Value.ToString();
    string buy_srp = items.Cells[2].Value.ToString();
    string buy_transNo = items.Cells[3].Value.ToString();
    string buy_date = items.Cells[4].Value.ToString();
    string buy_total_srp = items.Cells[5].Value.ToString();
    string buy_cart_no = items.Cells[6].Value.ToString();

    string str_conn2 ="insert into Transaction(UnitName,Quantity,SRP,TransactionNumber,Date,Total_SRP,Cart_no) values (@unitname_1,@quantity_1,@srp_1,@trans_1,@date_1,@total_srp_1,@cart_no_1)";
    SqlCommand sqlcomm = new SqlCommand(str_conn2, conn);
    sqlcomm.Parameters.AddWithValue("@unitname_1", buy_unitname);
    sqlcomm.Parameters.AddWithValue("@quantity_1", buy_quantity);
    sqlcomm.Parameters.AddWithValue("@srp_1", buy_srp);
    sqlcomm.Parameters.AddWithValue("@trans_1", buy_transNo);
    sqlcomm.Parameters.AddWithValue("@date_1", buy_date);
    sqlcomm.Parameters.AddWithValue("@total_srp_1", buy_total_srp);
    sqlcomm.Parameters.AddWithValue("@cart_no_1", buy_cart_no);
    sqlcomm.ExecuteNonQuery();  
}

conn.Close();