باسلام خدمت دوستان
در کد زیر من قصد ذخیره سازی اطلاعات از سی شارپ در اکسس را دارم ولی خطای زیر رخ میدهد ممنون میشم دوستان راهنمایی بفرمایند
خطا:
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();
}