• 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 那这样就不会冲突了,又很直观!~~~

  • 相关阅读:
    Java 网络编程的一些概念
    Java多线程之线程池
    Java多线程之线程协作
    Java多线程之线程同步
    Java 线程的基本使用
    线程的概念
    在Java中使用RabbitMQ
    Java Web
    Java 集合
    RabbitMQ的下载、安装
  • 原文地址:https://www.cnblogs.com/damonlan/p/2532434.html
Copyright © 2020-2023  润新知