使用c#和oledb查询更新Ms Access 2010中的列值
我正在努力更新MS-ACCESS数据库中的记录/列值。。。非常感谢您的帮助 我正在使用Datagridview显示从Ms access中的表检索到的零件号列表,我应该在其中更新/更改零件号。(“partno”是我的datagridview的第三列。) 但我无法更新数据库中的一条记录..没有例外。。一切都很好 但是没有发生争吵 这是我的密码:使用c#和oledb查询更新Ms Access 2010中的列值,c#,winforms,sql-update,ms-access-2010,oledbcommand,C#,Winforms,Sql Update,Ms Access 2010,Oledbcommand,我正在努力更新MS-ACCESS数据库中的记录/列值。。。非常感谢您的帮助 我正在使用Datagridview显示从Ms access中的表检索到的零件号列表,我应该在其中更新/更改零件号。(“partno”是我的datagridview的第三列。) 但我无法更新数据库中的一条记录..没有例外。。一切都很好 但是没有发生争吵 这是我的密码: private void UpdateDetails_Click(object sender, EventArgs e) { try
private void UpdateDetails_Click(object sender, EventArgs e)
{
try
{
con = new OleDbConnection();
con.ConnectionString = Helper.MyConnectionString;
con.Open();
for (int i = 0; i <= datagridview1.Rows.Count-1; i++)
{
int j = i + 1; // j is the serial number corresponding to partnumber
string partno = dgv1.Rows[i].Cells[2].Value.ToString(); //getting part number from Datagridview
String partquery = "";
if (partno == null || partno == "") //checking whether part number updated or not
{
partquery = "update Vendor SET PartNo=NULL where Vendor.Sno=" + j + " ";
}
else
partquery = "update Vendor SET PartNo='" + partno + "' where Vendor.Sno=" + j + " ";
//Vendor is the table name containg 'partno' list
cmd = new OleDbCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = partquery;
cmd.ExecuteNonQuery();
}
}
catch(Exception ex)
{
//exception handler
}
}
private void UpdateDetails\u单击(对象发送方,事件参数e)
{
尝试
{
con=新的OLEDB连接();
con.ConnectionString=Helper.MyConnectionString;
con.Open();
对于@Soner建议的(inti=0;i),应该使用参数
修改了代码您做过类似的事情吗
private void UpdateDetails_Click(object sender, EventArgs e)
{
try
{
con = new OleDbConnection();
con.ConnectionString = Helper.MyConnectionString;
con.Open();
for (int i = 0; i <= datagridview1.Rows.Count - 1; i++)
{
int j = i + 1; // j is the serial number corresponding to partnumber
string partno = dgv1.Rows[i].Cells[2].Value.ToString(); //getting part number from Datagridview
//String partquery = "";
//if (partno == null || partno == "") //checking whether part number updated or not
//{
// partquery = "update Vendor SET PartNo=NULL where Vendor.Sno=" + j + " ";
//}
//else
// partquery = "update Vendor SET PartNo='" + partno + "' where Vendor.Sno=" + j + " ";
OleDbCommand cmd = new System.Data.OleDb.OleDbCommand("update Vendor SET PartNo='@partno' where Vendor.Sno=@vndid");
OleDbParameter parameter = new System.Data.OleDb.OleDbParameter("@partno", partno);
cmd.Parameters.Add(parameter);
parameter = new System.Data.OleDb.OleDbParameter("@vndid", j);
cmd.Parameters.Add(parameter);
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
}
}
catch (Exception ex)
{
//exception handler
}
}
private void UpdateDetails\u单击(对象发送方,事件参数e)
{
尝试
{
con=新的OLEDB连接();
con.ConnectionString=Helper.MyConnectionString;
con.Open();
对于(int i=0;我使用而不是字符串连接。这种连接对攻击是开放的。我猜此链接将解决您的问题[1]:谢谢你的回复!我也试过了..但是没有用..你能建议我参数化的sql代码片段吗..@Soner GonulI已经访问了该链接..并且也试过了..仍然没有行生效..@ZubinAmit