ذخیره datagridview در اکسس - سی شارپ
باسلام خدمت دوستان
در کد زیر من قصد ذخیره سازی اطلاعات از سی شارپ در اکسس را دارم ولی خطای زیر رخ میدهد ممنون میشم دوستان راهنمایی بفرمایند
خطا:
System.Data.OleDb.OleDbException: 'Number of query values and destination fields are not the same.'
کد پروژه:
private DataTable GetDataTableFromDGV(DataGridView dgv)
{
var dt = new DataTable();
foreach (DataGridViewColumn column in dgv.Columns)
{
if (column.Visible)
{
dt.Columns.Add();
}
}
object[] cellValues = new object[dgv.Columns.Count];
foreach (DataGridViewRow row in dgv.Rows)
{
for (int i = 0; i < row.Cells.Count; i++)
{
cellValues[i] = row.Cells[i].Value;
}
dt.Rows.Add(cellValues);
}
return dt;
}
private void Exportbutton_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog();
if (KindcomboBox.SelectedIndex == 0)
{
OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Ace.OLEDB.12. 0;Data Source=" + openFileDialog1.FileName + ";Persist Security Info=True");
cn.Open();
DataTable dt = new DataTable();
dt = GetDataTableFromDGV(TtmsdataGridView);
OleDbCommand com = new OleDbCommand();
com.CommandType = CommandType.Text;
com.Connection = cn;
int dtc = dt.Rows.Count;
MessageBox.Show($"{dtc}");
for (int i = 0; i < (dt.Rows.Count); i++)
{
com.CommandText = "INSERT INTO Kharid_Detail(" + dt.Columns[i].ColumnName.Trim() + ")VALUES(" + (i++) + ",'" +
dt.Rows[i].ItemArray.GetValue(i) + "')";
com.ExecuteNonQuery();
}
نقل قول: ذخیره datagridview در اکسس - سی شارپ
اگه اشتباه نکرده باشم دارید داخل فیلد Number یک مقدار ارسال میکنید چون فیلد نوع Number عددی یا مقداری راسال نمیشه یا ارسال میشه رشته هستش به همین دلیل باعث ایجاد خطا میشه