C# SQLITE-INSERT不返回错误,但未插入任何数据
我试图将数据从C#应用程序插入本地SQLITE数据库文件。事务不会抛出任何错误,但不会插入数据。相同的insert语句在查询分析器中工作C# SQLITE-INSERT不返回错误,但未插入任何数据,c#,database,sqlite,C#,Database,Sqlite,我试图将数据从C#应用程序插入本地SQLITE数据库文件。事务不会抛出任何错误,但不会插入数据。相同的insert语句在查询分析器中工作 public string BuildInsert(string tableName, IDictionary<string, string> testDataDic) { stringBuilder = new StringBuilder(String.Format("INSERT INTO {0} ", tableNa
public string BuildInsert(string tableName, IDictionary<string, string> testDataDic)
{
stringBuilder = new StringBuilder(String.Format("INSERT INTO {0} ", tableName));
AddColumns(stringBuilder,testDataDic.Keys);
AddValues(stringBuilder, testDataDic.Values);
return stringBuilder.ToString();
}
我需要执行提交吗?有提交方法吗
命令的事务属性为null
var command = new SQLiteCommand(insert.BuildInsert(tableName,keyValuePairs),Connection);
command.ExecuteNonQuery();
更新:
我还尝试将SQLiteCommand与SQLiteTransaction关联起来,但没有成功
try
{
SQLiteTransaction liteTransaction = Connection.BeginTransaction();
SQLiteCommand command = new SQLiteCommand(insert.BuildInsert(tableName, keyValuePairs), Connection);
command.Transaction = liteTransaction;
command.ExecuteNonQuery();
liteTransaction.Commit();
}
catch (SQLiteException e)
{
//error
connection.Close();
}
BuildInsert方法只是构造一个作为插入的字符串。插入在查询分析器中工作正常
public string BuildInsert(string tableName, IDictionary<string, string> testDataDic)
{
stringBuilder = new StringBuilder(String.Format("INSERT INTO {0} ", tableName));
AddColumns(stringBuilder,testDataDic.Keys);
AddValues(stringBuilder, testDataDic.Values);
return stringBuilder.ToString();
}
啊!因此,本地数据库构建操作被设置为“Always copu”,因为同一文件有多个版本
对不起。这太差劲了。发布代码以查看您的尝试方式我希望看到BuildInsert方法的代码。也许有点不太对劲。好吧,现在您的AddColumns是否使所有列都在()中?像插入用户(用户名、密码)?-它是否确保没有额外的逗号?AddValues也是如此,是否正确构建查询?BuildInsert的返回值示例是什么?@thorkia我添加了一个insert语句示例。我真的怀疑这是问题所在。此插入在放入查询分析器时工作正常,不会报告应用程序中的错误。