更新有限的行数(UPDATE 语句中的语法错误)
Update limited number of rows (Syntax error in UPDATE statement)
有什么方法可以在 C# 中使用 OleDb 连接更新有限的行数(我连接到 Excel 文件)?
我试过以下方法:
private static string GetConnectionString = (string path)
{
var connectionDictionary = new Dictionary<string, string>();
connectionDictionary["Provider"] = "Microsoft.ACE.OLEDB.12.0";
connectionDictionary["Extended Properties"] = "Excel 12.0 XML";
connectionDictionary["Data Source"] = path;
var sb = new StringBuilder();
foreach (var property in connectionDictionary)
{
sb.Append(property.Key);
sb.Append("=");
sb.Append(property.Value);
sb.Append(";");
}
return sb.ToString();
}
public static void DoTheMagic(string path)
{
var connectionString = GetConnectionString(path)
using (var connection = new OleDbConnection(connectionString))
{
try
{
connection.Open();
var cmd = new OleDbCommand { Connection = connection };
cmd.CommandText = "UPDATE TOP (1) [TableName]
SET [Column] = 'value'
WHERE [Column] IS NULL";
cmd.ExecuteNonQuery();
}
finally
{
connection.Close();
}
}
}
但这会引发错误:
SystemData.OleDb.OleDbException occured in SystemData.Dall
Additional information: Syntax error in UPDATE statement
没有。 OLEDB 不提供与 Excel 和 'database engine' 组合的行编号或限制功能。它有一个非常精简的 SQL 引擎。
您可以在您的工作表中添加一个 ID 字段并以 X 为步长进行更新。问题是如果您有间隙,它可能不会更新任何内容。
有什么方法可以在 C# 中使用 OleDb 连接更新有限的行数(我连接到 Excel 文件)?
我试过以下方法:
private static string GetConnectionString = (string path)
{
var connectionDictionary = new Dictionary<string, string>();
connectionDictionary["Provider"] = "Microsoft.ACE.OLEDB.12.0";
connectionDictionary["Extended Properties"] = "Excel 12.0 XML";
connectionDictionary["Data Source"] = path;
var sb = new StringBuilder();
foreach (var property in connectionDictionary)
{
sb.Append(property.Key);
sb.Append("=");
sb.Append(property.Value);
sb.Append(";");
}
return sb.ToString();
}
public static void DoTheMagic(string path)
{
var connectionString = GetConnectionString(path)
using (var connection = new OleDbConnection(connectionString))
{
try
{
connection.Open();
var cmd = new OleDbCommand { Connection = connection };
cmd.CommandText = "UPDATE TOP (1) [TableName]
SET [Column] = 'value'
WHERE [Column] IS NULL";
cmd.ExecuteNonQuery();
}
finally
{
connection.Close();
}
}
}
但这会引发错误:
SystemData.OleDb.OleDbException occured in SystemData.Dall
Additional information: Syntax error in UPDATE statement
没有。 OLEDB 不提供与 Excel 和 'database engine' 组合的行编号或限制功能。它有一个非常精简的 SQL 引擎。
您可以在您的工作表中添加一个 ID 字段并以 X 为步长进行更新。问题是如果您有间隙,它可能不会更新任何内容。