插入一个“;.01〃;进入数据库c#
本文关键字:数据库 一个 插入 | 更新日期: 2023-09-27 18:27:16
我正试图在c#中的sql数据库中的varchar(50)中插入"0000.0000.0001"。我一直收到这个错误:
分析查询时出错。[令牌线编号=1,令牌线偏移=122,令牌错误=.0000]
我的插入看起来是:
string version = "0000.0000.0000.0001";
INSERT INTO [DBFileInfo] (DBFileInfoID,DatabaseType,Version, Description, CreationDate,ReleaseDate)
values(1,1,"+version.ToString()+
",`Default Beverage DB created by DbGen`,
CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)";
该表的初始构建是:
string info = " CREATE TABLE [DBFileInfo]( [DBFileInfoID] INT NOT NULL,[DatabaseType] INT NOT NULL DEFAULT(-1),[Version] VARCHAR(50) NOT NULL, [Description] NVARCHAR(256) NOT NULL, [CreationDate] DATETIME,[ReleaseDate] DATETIME);";
有没有办法绕过这个问题,这样我就可以在其中插入"."而不会出现异常?
THanks!
您需要将字符串放在单引号内:
string version = "0000.0000.0000.0001";
...values(1,1,'" + version + "','...
无论如何
我强烈建议您改用参数。例如
string version = "0000.0000.0000.0001";
string sql = @"INSERT INTO [DBFileInfo] (DBFileInfoID,DatabaseType,Version, Description, CreationDate,ReleaseDate)
VALUES(1,1,@Version,'Default Beverage DB created by DbGen',CURRENT_TIMESTAMP,CURRENT_TIMESTAMP);";
using (var connection = new SqlConnection(yourConnectionString))
using (var command = new SqlCommand(sql, connection))
{
command.Parameters.AddWithValue("@Version", version);
connection.Open();
command.ExecuteNonQuery();
}
可能您遗漏了引号,请尝试:
... values(1,1,'"+version.ToString()+"','Default Beverage ..
尽管您可能正在使用参数
... values(1,1,@version,'Default Beverage ..
在这种情况下,您必须使用参数@version
执行语句,并将值传递给它。