C# System.Data.SqlClient.SqlException:“,”附近的语法不正确。”

C# System.Data.SqlClient.SqlException:“,”附近的语法不正确。”,c#,sql,C#,Sql,我创建此代码是为了向数据库中添加新记录,但是,每次使用此代码时,都会出现以下错误: System.Data.SqlClient.SqlException:“,”附近的语法不正确。” 我不知道如何修复这个错误,我在网上查找并尝试了不同的方法来修复它,但没有一种方法能够帮助或修复这个问题 代码如下所示: SqlCommand sdk = new SqlCommand("SELECT ([Id],[Title],[JobInfo],[DateSet],[DateDue],[WhoFor]) FROM

我创建此代码是为了向数据库中添加新记录,但是,每次使用此代码时,都会出现以下错误:

System.Data.SqlClient.SqlException:“,”附近的语法不正确。”

我不知道如何修复这个错误,我在网上查找并尝试了不同的方法来修复它,但没有一种方法能够帮助或修复这个问题

代码如下所示:

SqlCommand sdk = new SqlCommand("SELECT ([Id],[Title],[JobInfo],[DateSet],[DateDue],[WhoFor]) FROM Information_Schema.Columns FROM JobInformation", ConnectToDatabase);

ConnectToDatabase.Open();
SqlDataReader reader;
reader = sdk.ExecuteReader();
ConnectToDatabase.Close();

我相信这是第一行代码,但我不知道错误在哪里。

我想你的意思是:

ConnectToDatabase.Open();
using(var sdk = new SqlCommand(
    "SELECT [Id],[Title],[JobInfo],[DateSet],[DateDue],[WhoFor] FROM JobInformation",
    ConnectToDatabase))
using(var reader = sdk.ExecuteReader())
{
    while(reader.Read()) { /* process row */
}
ConnectToDatabase.Close();
但是,您可能会发现使用以下工具更容易:

}

或者用简洁的方式:

ConnectToDatabase.Execute(@"
    insert JobInformation(Title, JobInfo, DateSet, DateDue, WhoFor)
    values (@title, @jobInfo, @dateSet, @dateDue, @whoFor)",
    new { title, jobInfo, dateSet, dateDue, whoFor});

您有两个FROM子句,这是合法的SQL吗?select不需要括号,您有两个FROM-您在这里想做什么?认为您的SQL查询不正确。select是FROM Information\u Schema.Columns还是FROM JobInformation?作为旁注,在关闭数据库之前,您实际上也没有读取数据connection@jamieshepherd哪里在问题中?SqlCommand sdk=new-SqlCommandSELECT[Id]、[Title]、[JobInfo]、[DateSet]、[DateDue]、[WhoFor]FROM Information\u Schema.Columns FROM JobInformation,ConnectToDatabase;SqlCommand sdk=新的SqlCommandINSERT[Id]、[Title]、[JobInfo]、[DateSet]、[DATEDUTE]、[WhoFor]来自信息模式。来自作业信息的列,连接数据库;我也在尝试你的解决方案,我认为在尝试编写任何@jamieshepherd的代码之前,你需要阅读更多关于sql语言语法的内容。。。
using(var cmd = new SqlCommand(@"
    insert JobInformation(Title, JobInfo, DateSet, DateDue, WhoFor)
    values (@title, @jobInfo, @dateSet, @dateDue, @whoFor)", ConnectToDatabase))
{
    cmd.Parameters.AddWithValue("@title", title);
    cmd.Parameters.AddWithValue("@jobInfo", jobInfo);
    cmd.Parameters.AddWithValue("@dateSet", dateSet);
    cmd.Parameters.AddWithValue("@dateDue", dateDue);
    cmd.Parameters.AddWithValue("@whoFor", whoFor);
    cmd.ExecuteNonQuery();
ConnectToDatabase.Execute(@"
    insert JobInformation(Title, JobInfo, DateSet, DateDue, WhoFor)
    values (@title, @jobInfo, @dateSet, @dateDue, @whoFor)",
    new { title, jobInfo, dateSet, dateDue, whoFor});