Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Update语句不会更新表_C#_Sql_Sql Update_Ms Access 2010 - Fatal编程技术网

C# Update语句不会更新表

C# Update语句不会更新表,c#,sql,sql-update,ms-access-2010,C#,Sql,Sql Update,Ms Access 2010,我正在尝试更新MS Access表中的供应商记录,这是DA层中的代码: 方法来更新供应商 public static void updateVendor(Vendor aVendor) { try { String sSQLCommand = "UPDATE Vendor SET VendorID = '" + aVendor.VendorId + "', VendorName = '" + aVendor.Name

我正在尝试更新MS Access表中的供应商记录,这是DA层中的代码:

方法来更新供应商

public static void updateVendor(Vendor aVendor)
{
    try
    {
        String sSQLCommand = "UPDATE Vendor SET VendorID = '" + aVendor.VendorId + "', VendorName = '" + aVendor.Name 
                            + "', AddressNo = '" + aVendor.AddressNo + "', Address = '" + aVendor.Address + "', City = '" 
                            + aVendor.City + "', State = '" + aVendor.State + "', ZipCode = '" + aVendor.Zipcode + "', PhoneNumber = '" 
                            + aVendor.PhoneNumber + "' WHERE VendorID = '" + aVendor.VendorId + "'";

        // Create the command object
        if (aConnection.State == ConnectionState.Closed)
            aConnection.Open();

        OleDbCommand cmd = aConnection.CreateCommand();
        cmd.CommandText = sSQLCommand;
        // Execute the SQL command
        cmd.ExecuteNonQuery();
        aConnection.Close();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
}

我没有收到任何类型的错误,但它不会更新表,因此我不确定它到底出了什么问题,您是否看到了任何错误?

Daniel,如果查询执行时没有任何错误,并且问题是没有更新任何记录,请检入以下数据:

  • VendorID字段是文本字段,因此如果列中的值前面有空格,则查询将不会更新任何内容,而是成功执行

这是可能的,因为access不会删除文本中前面的空白。

您不应该这样连接SQL-您的代码容易受到攻击。您是否在执行之前检查了什么是
sSQLCommand
?您是否尝试直接执行它?不确定,但您不需要/不应该设置VendorID=“…”。连接共享的形式也很糟糕
OleDbConnection
支持连接池,因此您应该在需要连接时使用
语句在
中创建一个新的连接池,而不是在多个方法之间共享一个实例(
a连接
)。@Oded我的SQL应该是什么样的?是的,sSQLCommand中有正确的语句,或者至少我认为是正确的,因为它不工作