【发布时间】:2017-09-13 11:57:29
【问题描述】:
所以我一直在尝试使用 datagridview 将新行添加到我的数据库中。我不希望事先将整个数据库加载到网格中并刷新它。我只想将数据网格中的值添加到表中。我想不出解决方法。如果我通常这样做,它会给我一个错误,即所有变量都必须是唯一的。我曾尝试添加 sqlconnection.parameters.clear() 函数,但似乎它使所有值都变为空并给我一个错误,我没有为参数提供必要的信息。
string TicketTableInsertString = "INSERT INTO ticketTable (TicketID, num1, num2,num3,num4,num5) VALUES (@TicketID,@num1,@num2,@num3,@num4,@num5)";
SqlConnection sqlConn;
connString = "Data Source=DESKTOP-30191JE\\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";
sqlConn = new SqlConnection(connString);
try
{
sqlConn.Open();
int ticketID=0;
SqlCommand selectTicketIDCMD = new SqlCommand(selectTicketIDString, sqlConn);
SqlCommand mainTableInsertCMD = new SqlCommand(MainTableInsertString, sqlConn);
SqlCommand ticketTableInsertCMD = new SqlCommand(TicketTableInsertString, sqlConn);
ticketID = (int)selectTicketIDCMD.ExecuteScalar()+1;
sqlConn.Close();
for (int i = 0; i < dgv_ticket.Rows.Count; i++)
{
ticketTableInsertCMD.Parameters.AddWithValue("@TicketID", ticketID);
ticketTableInsertCMD.Parameters.AddWithValue("@num1", dgv_ticket.Rows[i].Cells[0].Value);
ticketTableInsertCMD.Parameters.AddWithValue("@num2", dgv_ticket.Rows[i].Cells[1].Value);
ticketTableInsertCMD.Parameters.AddWithValue("@num3", dgv_ticket.Rows[i].Cells[2].Value);
ticketTableInsertCMD.Parameters.AddWithValue("@num4", dgv_ticket.Rows[i].Cells[3].Value);
ticketTableInsertCMD.Parameters.AddWithValue("@num5", dgv_ticket.Rows[i].Cells[4].Value);
sqlConn.Open();
ticketTableInsertCMD.ExecuteNonQuery();
sqlConn.Close();
}
【问题讨论】:
标签: c# sql datagridview parameters