【发布时间】:2017-04-25 12:56:51
【问题描述】:
我有这个问题:我需要从我的 .NET Core 应用程序中执行原始 SQL。所以我有这个代码
var sqlConnection1 = new SqlConnection("Server=(localdb)\\mssqllocaldb;Database=MyDB;Trusted_Connection=True;MultipleActiveResultSets=true");
var cmd = new SqlCommand
{
CommandText = "SELECT * FROM dbo.Candidates WHERE id = " + model.CandidateId,
CommandType = CommandType.Text,
Connection = sqlConnection1
};
sqlConnection1.Open();
var wantedRow = cmd.ExecuteReader();
sqlConnection1.Close();
我无法访问 WantedRow 中的数据... (当我使用实体框架时,此查询有效,但我不能使用实体框架)。在 .NET Core 中是否可行?
【问题讨论】:
-
您收到什么错误?
-
我没有收到错误,我收到了 SqlDataReader 对象,并且 WantedRow.GetString() 在没有数据时给了我无效的读取尝试。
-
@MacakM 此代码易受 SQL 注入攻击,您需要参数化查询。您也没有正确处理您的 IDisposable 对象。这些需要包含在 using 语句中。
-
上面的代码没有报错。当我尝试了一些糟糕的方法来获取数据时,我得到了一个错误。