将 ADO.NET 与 ASP.NET MVC 一起使用时出现语法错误
Syntax error while using ADO.NET with ASP.NET MVC
我一直在学习本教程:
http://www.codeproject.com/Articles/522226/ADO-NET-cplustheplusrightplusway
了解有关 ADO.NET 内部 ASP.NET MVC 的更多信息。但是如果我把下面的代码放在一个动作中
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]);
}
}
我尝试 运行 它,我得到一个语法错误,正如系统所说,在 "keyword 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 的 table 以及一些名为 'Name' 的行和示例数据。
group
是SQL中的保留字,所以需要用方括号转义:
SELECT * FROM [dbo].[group]
一般来说,最好对查询中使用的所有文字名称进行转义,以避免此类问题。
首先,你需要提供带方括号的转义组,因为它是保留关键字,
SELECT * FROM [dbo].[group]
然后根据您的评论,您需要使用 DataReader.Read 来检索这样的数据,以解决 "Invalid attempt to read when no data is present" 错误。
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
//your code here
}
}
第二个错误如果单独写一个问题会更好
我一直在学习本教程: http://www.codeproject.com/Articles/522226/ADO-NET-cplustheplusrightplusway
了解有关 ADO.NET 内部 ASP.NET MVC 的更多信息。但是如果我把下面的代码放在一个动作中
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]);
}
}
我尝试 运行 它,我得到一个语法错误,正如系统所说,在 "keyword 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 的 table 以及一些名为 'Name' 的行和示例数据。
group
是SQL中的保留字,所以需要用方括号转义:
SELECT * FROM [dbo].[group]
一般来说,最好对查询中使用的所有文字名称进行转义,以避免此类问题。
首先,你需要提供带方括号的转义组,因为它是保留关键字,
SELECT * FROM [dbo].[group]
然后根据您的评论,您需要使用 DataReader.Read 来检索这样的数据,以解决 "Invalid attempt to read when no data is present" 错误。
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
//your code here
}
}
第二个错误如果单独写一个问题会更好