繁体   English   中英

将ADO.NET与ASP.NET MVC一起使用时的语法错误

[英]Syntax error while using ADO.NET with ASP.NET MVC

我一直在关注本教程: http : //www.codeproject.com/Articles/522226/ADO-NET-cplustheplusrightplusway

在ASP.NET MVC中了解有关ADO.NET的更多信息。 但是如果我将以下代码放入动作中

var connectionString = ConfigurationManager.ConnectionStrings["StoreCon"].ConnectionString;
        var _connection = new SqlConnection(connectionString);
        _connection.Open();

        using (var command = _connection.CreateCommand())
        {
            command.CommandText = @"SELECT * FROM dbo.group";
            using (var reader = command.ExecuteReader())
            {
                Console.WriteLine(reader[1]);
            }
        }

并尝试运行它,如系统提示,在“关键字group ”周围出现语法错误。

我是MVC的新手,很抱歉,这很简单。 我还添加了一个连接字符串:

<add name="StoreCon"
 connectionString=
   "Data Source=(LocalDb)\v11.0;
    AttachDbFilename=|DataDirectory|\Items.mdf;Integrated Security=True"
     providerName="System.Data.SqlClient" />

并添加了一个名为Items.mdf的数据库,该数据库具有一个名为dbo.group的表,其中包含一些名为“名称”的行和示例数据。

首先,您需要为转义组提供方括号,因为它是保留关键字,

SELECT * FROM [dbo].[group]

然后从您的注释中使用DataReader.Read来检索这样的数据,以解决“没有数据时尝试无效读取”错误。

using (var reader = command.ExecuteReader())
{
  while (reader.Read()) 
  {
   //your code here
  }
}

如果您为第二个错误写一个单独的问题会更好。

group是SQL中的保留字,因此您需要使用方括号将其转义:

SELECT * FROM [dbo].[group]

通常,最好避免在查询中使用所有文字名称,以免发生此类问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM