插入一个“;.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!

插入一个“;.01〃;进入数据库c#

您需要将字符串放在单引号内:

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执行语句,并将值传递给它。

相关文章: