我試圖在我的 datagridview 中顯示來自 mariadb 資料庫的所有暫存器,但是當我啟動代碼時,出現錯誤“連接必須有效并且打開錯誤”,代碼在這里:
如果有人可以幫助我,我會很高興:)
uj5u.com熱心網友回復:
您的代碼有兩個主要問題。首先,您不會將連接物件與命令物件相關聯,而是
MySqlCommand cmd = new MySqlCommand("SELECT * FROM encomendas");
它應該是
MySqlCommand cmd = new MySqlCommand("SELECT * FROM encomendas", bdcon);
此外,無需呼叫cmd.ExecuteNonQuery(). 還建議using在實作的物件上使用塊IDisposable以確保正確處理它們,因此您的完整代碼可能是:
var datatable = new DataTable();
using (var connection = new MySqlConnection("connectionstring"))
using (var command = new MySqlCommand("SELECT * FROM encomendas", connection ))
{
connection.Open()'
using (var reader = command.ExecuteReader())
{
datatable.Load(reader);
}
}
// Bind to your grid view
話雖如此,如果您要填充 DataTable,那么MySqlDataAdapater()是最簡單的方法:
var dt = new DataTable();
using (var adapter = new MySqlDataAdapter("SELECT * FROM encomendas", "ConnectionString"))
{
adapter.Fill(dt);
}
// Bind to your grid view
uj5u.com熱心網友回復:
洗掉 MysqlCommand cmd = new MySqlCommand("") 行試試
using (var sqlCommand = new MySqlCommand("SELECT * FROM encomendas", bdcon))
{
MySqlDataReader read = sqlCommand.ExecuteReader();
dt.Load(read);
}
試試吧
uj5u.com熱心網友回復:
你的物件MysqlCommand必須與你的物件有關聯MysqlConnection。顯然你的 cmd 與 bdcon 無關,這就是為什么當你呼叫方法 ``cmd.ExecuteNonQuery() 時它說“連接必須有效并且打開錯誤”的原因。這是一個類似的片段。
SqlConnection sqlConnection = new SqlConnection();
SqlCommand cmd = sqlConnection.CreateCommand();
//or
SqlCommand cmd = new SqlCommand("sql text", sqlConnection);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/433601.html
