私はOledbを使ってExcelシートに接続しています。私の接続は正常に動作しています。データの挿入と取り出しもうまくいきます。しかし、where句でExcelシートのレコードを更新しようとすると、コードが正常に実行されますが、Excelの行は更新されません。C#ADO.NETを使用してExcelの行を更新するには?
私のコードは次のとおりです。
strQry = @"Update [Guests$] set [FirstName][email protected],[LastName][email protected],[Address][email protected],
[EmailId][email protected],[TelNo][email protected],[MobileNo][email protected],[FaxNo][email protected] where [GuestId][email protected]";
using (OleDbConnection con = new OleDbConnection(clsConnection.conStr))
{
using (OleDbCommand cmd = new OleDbCommand(strQry,con))
{
cmd.Parameters.Add("@GuestId", OleDbType.Integer).Value = intId;
cmd.Parameters.Add("@FirstName", OleDbType.VarChar, 15).Value = txtFirstName.Text;
cmd.Parameters.Add("@LastName", OleDbType.VarChar, 15).Value = txtLastName.Text;
cmd.Parameters.Add("@Address", OleDbType.VarChar, 200).Value = txtAddress.Text;
cmd.Parameters.Add("@EmailId", OleDbType.VarChar, 50).Value = txtEmail.Text;
cmd.Parameters.Add("@TelNo", OleDbType.VarChar, 20).Value = txtTelNo.Text;
cmd.Parameters.Add("@MobileNo", OleDbType.VarChar, 15).Value = txtMobileNo.Text;
cmd.Parameters.Add("@FaxNo", OleDbType.VarChar, 20).Value = txtFaxNo.Text;
if (con.State == ConnectionState.Closed)
{
con.Open();
}
cmd.ExecuteNonQuery();
MessageBox.Show(strSuccessMsg);
BinddgvGuests();
ClearControls();
}
}
をしかし、私は削除する場合句は、すべてのレコードが更新される場所。
where句に問題がありますか?
intID値がExcelのレコードに存在するかどうかを確認しましたか? –
はい、値は存在します。 –