我創建了一個方法來返回mysql數據讀取器。asp net core - NullReferenceException:如何從方法返回mysql數據讀取器?
public class DbHelper : BaseService
{
public DbHelper(string connectionString) : base(connectionString)
{ }
public static MySqlDataReader GetDataReader(string query)
{
using (MySqlConnection connection = new MySqlConnection(_connectionString))
{
connection.Open();
using (MySqlCommand command = new MySqlCommand(query, connection))
{
MySqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
}
}
}
和明年我寫:
var query = ""; //here my query string
var rdr = DbHelper.GetDataReader(query);
while (rdr.Read())
{
}
,但我收到這條線return reader;
_connectionString
和query
正確增值的一個空引用異常。
我該如何解決?我究竟做錯了什麼?
如果閱讀器使用的底層連接關閉,則不能使用閱讀器。這種方法不能工作 – Steve
@Steve你的意思是行'MySqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);'是不正確的?如果我使用'CommandBehavior.Default',它無法正常工作...... – FabioBit
_「我在這一行收到一個空引用異常'return reader;'」_ - 這是不可能的。一個'return'語句只是返回表達式中的值,在這個例子中是'reader'。如果'reader'爲'null',則只返回一個'null'值。它不會拋出異常。我同意這些意見,解釋說你不能在返回對象之前處理對象,並期望它能夠正常工作。但是你的問題首先並沒有描述合理的錯誤情況。如果'NullReferenceException'確實是你所問的,請看標記的副本。否則,修復問題 –