Incorrect syntax near the keyword 'user'.解決方案


其實,這只是一個很小很小的問題,真的很小,可是卻讓我花費了整整一個小時的時間!~~

事情是這樣子的,公司一個很要好的同事因為他先前學JAVA的,可能最近項目上需求需要學習.NET,所以就遇到取數據庫的問題,剛開始想這多簡單啊!~,然后他就創建了一個表,user,有3個字段,id,username和password。

遠程連接到他的電腦,開始操作。

如下:

然后,幫他寫了一個里面取username和password的sql語句:

string connStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Desktop\ProjectTest\練習項目集中營\Haha\WebApplication1\App_Data\Database1.mdf;Integrated Security=True;User Instance=True";
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.CommandText = "Select * from user where id='" + 1 + "'";//這里需要注意,我用了 user 這個表名 悲劇從這里開始。。
                    cmd.Connection = conn;
                    SqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        string user = Convert.ToString(reader["username"]);
                        string pass = Convert.ToString(reader["password"]);
                    }
                }
            }

然后,點確定,很開心的等啊等。。

等到一個錯誤!~

說什么user語法錯誤?其實,我很粗心 沒有看到keyword 這個東東。。然后,我就在找sql語句,或者是我上面的邏輯不清楚,百度。。

一個小時之后。。。

我猛然想起,keyword這個東東。然后在博客園找到了SQL的關鍵字。

SQL 關鍵字 關鍵字 關鍵字

園子們可以到上面看看!~~~~

誒,其實 都是粗心惹的貨呀,看下面:

在postgresql、sql99以及sql92都把user作為保留字了!~經驗啊經驗啊!!!既然是保留字,就不能用了(是不是很霸道!~,不過木有辦法啊!)

后來,我在google查了這個消息,發現很多人都有遇到這個問題:

原來那么多人都不認真,呵呵 希望這篇文章能給你帶來幫助!~。

扯淡了 那么多,那解決就很簡單了吧!

1.重命名表名。。這個方法很土。

2.在user這個外面加個[],比如[user] 這樣就可以了。。。

其實,這里重要的還是表命名的問題,只要我們在平時多注意下就可以了。

提供個建議:

比如 user表,那么我們這樣命名: t_user 那這樣就不會沖突了,又很直觀!~~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM