【发布时间】:2018-04-18 10:10:34
【问题描述】:
我想在数据库中插入一些数据,该数据库从我创建的表单中获取要插入的信息。我正在使用以下命令:
String query = @"INSERT INTO Visits(Name,Surname,DocType,DocNumber,Gender,Company,Delivery,Entrance,Visiting) VALUES( "
+ NameBox.Text.Split(null)[0]+ " , "
+ SurnameBox.Text.Split(null)[0] + " , "
+ type + " , "
+ Convert.ToDouble(idNBox.Text) + " , "
+ gender + "," + Companybox.Text + " , "
+ delivery + " , " + DateTime.Now + " ,"
+ VisitingCombo.Text
+ " )";
表的创建结构如下,
CREATE TABLE [dbo].[Visits] (
[Name] NVARCHAR (50) NOT NULL,
[Surname] NVARCHAR (50) NOT NULL,
[DocType] NVARCHAR (50) NOT NULL,
[IdNumber] BIGINT NOT NULL,
[Gender] NCHAR (1) NOT NULL,
[Company] NVARCHAR (50) NOT NULL,
[Delivery] BIT NOT NULL,
[Entrance] DATE NOT NULL,
[Out] DATE NULL,
[Visting] NVARCHAR (50) NOT NULL,
PRIMARY KEY CLUSTERED ([IdNumber] ASC, [DocType] ASC, [Entrance] ASC),
FOREIGN KEY ([Visting]) REFERENCES [dbo].[Person] ([Name]));
运行代码我尝试插入时出现如下错误,
System.Data.SqlClient.SqlException: '',' 附近的语法不正确。'
对于插入,我使用了我在 Nicholas Carey 的回复中找到的一些代码,可以解决我的问题。 How to directly execute SQL query in C#? Have example batch file
我知道错误发生在查询的第一个值中。我在这里做错了什么?
【问题讨论】:
-
渲染的
query字符串的值是多少? -
您确定您的任何文本框中都没有逗号吗?只需在声明后执行 MessageBox.Show(query) 即可对其进行测试。也总是像 Olaksandr 建议的那样使用参数化查询 - 这样可以省去很多麻烦。
-
@Jerodev 这将是查询link
标签: c# sql database visual-studio