Khi một hoặc nhiều trường của bạn chứa NULL (DBNull.Value), bạn không thể sử dụng GetString
trên chúng.
Bạn cần kiểm tra xem chúng có rỗng hay không bằng cách sử dụng phương pháp IsDBNull và chọn giá trị nào bạn muốn đặt vào hộp văn bản. Thông thường nó là một chuỗi rỗng
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string constring = "datasource=localhost;port=3306;username=root;password=root";
string Query = "SELECT * from database.check WHERE patientname IS NOT NULL";
using(MySqlConnection conDataBase = new MySqlConnection(constring))
using(MySqlCommand cmdDataBase = new MySqlCommand(Query, conDataBase))
{
try
{
conDataBase.Open();
using(MySqlDataReader myReader = cmdDataBase.ExecuteReader())
{
int namePos = myReader.GetOrdinal("namethestore");
int checkerPos = myReader.GetOrdinal("checkername");
while (myReader.Read())
{
string namethestore = myReader.IsDBNull(namePos)
? string.Empty
: myReader.GetString("namethestore");
string checkername = myReader.IsDBNull(checkerPos)
? string.Empty
: myReader.GetString("checkername");
this.textBox65.Text = namethestore;
this.textBox66.Text = checkername;
}
}
}
}
Tôi cũng khuyên bạn nên sử dụng câu lệnh using xung quanh các đồ vật dùng một lần. Điều này sẽ đảm bảo việc đóng và xử lý đúng cách khi bạn không cần đến chúng nữa, cũng như trong trường hợp ngoại lệ .....