无法在C#中连接到SQL Server数据库

时间:2014-02-12 04:58:39

标签: c# sql

我正在学习C#,我正在尝试将我的程序连接到SQL Server数据库。出于学习目的,我遵循以下视频:

http://www.youtube.com/watch?v=Rwdedptaou0

这是我的代码:

using System.Data.SqlClient;

namespace TestDBMS
{
    public partial class MainWindow : Window
    {
        SqlConnection conn;
        SqlCommand cmd;

        public MainWindow()
        {
            InitializeComponent();
            conn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Reventon\Documents\EmployeeDB.mdf;Integrated Security=True;Connect Timeout=30");
        }

        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            string query = "INSERT INTO Table VALUES(3, 'Sachin', '120000', 'Nagaur')";
            cmd = new SqlCommand();
            cmd.CommandText = query;
            cmd.Connection = conn;
            conn.Open();
            cmd.ExecuteNonQuery();
            conn.Close();

            MessageBox.Show("Record Saved");
        }
    }
}

编译程序后我收到错误

  

“表格”附近的语法不正确

(为了更好的表示,我已经捕获了截图并上传到我的Skydrive帐户)。 http://sdrv.ms/1bUDe3l

请帮帮我。

7 个答案:

答案 0 :(得分:4)

Table是关键字,不能用作表名。 将查询更改为

 string query = "INSERT INTO yourTableName VALUES(3, 'Sachin', '120000', 'Nagaur')";

答案 1 :(得分:1)

插入查询语法:

INSERT INTO yourtablename
(column1, column2, ... )
VALUES
(expression1, expression2, ... );

代码中的错误是table将其重命名为相应的表名 喜欢 Customertable

INSERT INTO Customertable VALUES(3, 'Sachin', '120000', 'Nagaur')

更改表名:

使用sp_rename重命名表名:

    EXEC sp_rename 'table', 'Customertable'

    sp_rename old_table_name , new_table_name

ALTER TABLE TABLE_NAME RENAME TO NEW_TABLE_NAME 仅适用于 Oracle DB

<强> Tutorial

您可以在MSDN上找到有关此程序的文档。

服务器资源管理器中,右键点击观看次数,然后点击新查询
使用此代码重命名表:

EXEC sp_rename 'Table', 'NewName'  

然后点击执行按钮 在服务器资源管理器 5-30 秒后,点击刷新按钮。

enter image description here

答案 2 :(得分:0)

是默认的SQL关键字。为您的表格指定具体名称。

INSERT INTO Customer VALUES(3, 'Sachin', '120000', 'Nagaur')

答案 3 :(得分:0)

你能改变你的名字吗?然后再试一次。因为table是默认关键字

INSERT INTO Tablename (col1,col2,col3,col4) VALUES(3, 'Sachin', '120000', 'Nagaur')";

答案 4 :(得分:0)

您不能将Table关键字用作表名。你应该给出一些其他的名字。以下是SQL Server中的关键字列表:http://technet.microsoft.com/en-us/library/aa238507%28v=sql.80%29.aspx

尝试此查询:

string query = "INSERT INTO yourTableName VALUES (3, 'Sachin', '120000', 'Nagaur')";

OR

string query = "INSERT INTO yourTableName(Column1, Column2, Column3, Column4) VALUES (3, 'Sachin', '120000', 'Nagaur')";

答案 5 :(得分:0)

实际上,除了其中一个答案都是正确的,如果你使用方括号[ ]

,你实际上可以使用单词Table作为表名。
Create Table Table ( id int ) -- doesn't work!

然而,

Create Table [Table] ( id int ) -- works!

我不推荐这种做法,并同意最好使用"Table"以外的名称,即使数据库表的方括号也是如此!

只是想指出,从技术上讲,实际上有一种方法可以使用SQL关键字&#39; table&#39;作为SQL Server中的表名。

答案 6 :(得分:0)

string query = "INSERT INTO [Table] VALUES(3, 'Sachin', '120000', 'Nagaur')";