[英]Issues with Inserting uneven data from datagridview into database c#
嗨,我有这段代码可以将数据从datagridview插入数据库
for (int i = 0; i < ADODB.Rows.Count - 1; i++)
{
SqlCommand cmd = new SqlCommand("INSERT INTO Employee VALUES(@Team, @SIC, @EID,@EmployeeName,@Username,@Password,@Designation,@Department,@Email,@HireDate,@TakenAL,@Status)", con);
cmd.Parameters.AddWithValue("@Team", ADODB.Rows[i].Cells[0].Value);
cmd.Parameters.AddWithValue("@SIC", ADODB.Rows[i].Cells[1].Value);
cmd.Parameters.AddWithValue("@EID", ADODB.Rows[i].Cells[2].Value);
cmd.Parameters.AddWithValue("@EmployeeName", ADODB.Rows[i].Cells[3].Value);
cmd.Parameters.AddWithValue("@Username", ADODB.Rows[i].Cells[4].Value);
cmd.Parameters.AddWithValue("@Password", ADODB.Rows[i].Cells[5].Value);
cmd.Parameters.AddWithValue("@Designation", ADODB.Rows[i].Cells[6].Value);
cmd.Parameters.AddWithValue("@Department", ADODB.Rows[i].Cells[7].Value);
cmd.Parameters.AddWithValue("@Email", ADODB.Rows[i].Cells[8].Value);
cmd.Parameters.AddWithValue("@HireDate", ADODB.Rows[i].Cells[9].Value);
cmd.Parameters.AddWithValue("@TakenAL", ADODB.Rows[i].Cells[10].Value);
cmd.Parameters.AddWithValue("@Status", ADODB.Rows[i].Cells[11].Value);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
我想问一下我的datagridview中是否有12列,但是我的数据库有13列。 由于所添加内容的差异,将提示错误。 我该如何解决这个问题? 提前致谢
对列使用名称引用,即
cmd.Parameters.AddWithValue("@Team", ADODB.Rows[i].Cells["Team"].Value);
cmd.Parameters.AddWithValue("@SIC", ADODB.Rows[i].Cells["SIC"].Value);
cmd.Parameters.AddWithValue("@EID", ADODB.Rows[i].Cells["EID"].Value);
当您从数据库加载数据时,这些列将从数据库列中接收其名称。 另一种方法是通过VS中的GUI或通过代码来设置和命名列,即:
DataGridView1.Column[2].Name = "EID"
如果先在GUI或代码中设计datagridview的列方案,请确保使用
DataGridView1.AutoGenerateColumns = False
并且使用DataPropertyName在加载数据时使用该名称引用:
DataGridView1.Column[2].DataPropertyName = "EID"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.