簡體   English   中英

在數據庫C#中插入“ .01”

[英]Inserting a “.01” into database c#

我正在嘗試在C#的sql數據庫中將“ 0000.0000.0000.0001”插入varchar(50)中。 我不斷收到此錯誤:

解析查詢時出錯。 [令牌行號= 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);";

有沒有解決的辦法,所以我可以插入“。” 毫無例外地進入它?

謝謝!

您需要將字符串放在單引號內:

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執行語句並將值傳遞給它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM