Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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# 使用SQLiteParameter设置默认值_C#_Sqlite_System.data.sqlite - Fatal编程技术网

C# 使用SQLiteParameter设置默认值

C# 使用SQLiteParameter设置默认值,c#,sqlite,system.data.sqlite,C#,Sqlite,System.data.sqlite,我的查询应该在“Settings\u Global”表中添加一个额外的列“\u DisableAccounting”,使用SQLitePareter指定默认值 ALTER TABLE Settings\u Global ADD COLUMN`\u DisableAccounting`BOOL NOT NULL DEFAULT@defaultValue; 执行SQLiteCommand时,@defaultValue应替换为提供的参数 /。。。。 SQLiteParameter defaultVa

我的查询应该在“Settings\u Global”表中添加一个额外的列“\u DisableAccounting”,使用SQLitePareter指定默认值

ALTER TABLE Settings\u Global ADD COLUMN`\u DisableAccounting`BOOL NOT NULL DEFAULT@defaultValue;
执行SQLiteCommand时,@defaultValue应替换为提供的参数

/。。。。
SQLiteParameter defaultValueParam=null;
如果(默认值!=null){
query+=“DEFAULT@defaultValue`”;
defaultValueParam=new SQLiteParameter{ParameterName=“@defaultValue”,Value=defaultValue};
}
查询+=“;”;
使用(SQLiteCommand cmd=\u Connection.CreateCommand()){
cmd.CommandText=查询;
if(defaultValueParam!=null){
cmd.Parameters.Add(defaultValueParam);
}
cmd.ExecuteNonQuery();
}
// ....
但是,我在附近得到了错误“'SQL逻辑错误或缺少数据库” @defaultValue“:语法错误'。因此,该命令似乎从未用实际值替换@defaultValue


为什么这不起作用?我对MySQL的做法基本上是一样的(我的应用程序可以选择使用MySQL),而且它也在起作用。

您似乎有一个虚假的严重口音。也就是说@defaultValue后面跟着严重口音,而它可能不应该是

试着改变

ALTER TABLE Settings_Global ADD COLUMN `_DisableAccounting` BOOL  NOT NULL  DEFAULT @defaultValue`;


在执行ALTERTABLE时,SQLite不会以任何方式修改列定义,而是直接将其插入CREATETABLE语句的末尾。 这意味着参数标记将在CREATETABLE语句中结束,这将导致在稍后解释该语句时参数值不可用


您必须将默认值直接插入SQL命令。

伪grave重音是完全按照您的建议使用“@defaultValue”的结果。但这导致默认值实际上是字符串“@defaultValue”“。在复制/粘贴示例之前,我没有删除尾随grave,因此,很抱歉造成混淆。请您解释一下“SQLite不以任何方式修改列定义”的含义好吗?”?如果“添加列”没有修改/添加相应的列定义,“添加列”应该如何工作?
ALTER TABLE Settings_Global ADD COLUMN `_DisableAccounting` BOOL  NOT NULL  DEFAULT @defaultValue;
ALTER TABLE Settings_Global ADD COLUMN `_DisableAccounting` BOOL  NOT NULL  DEFAULT `@defaultValue`;