我一直在努力與下面的方法一段時間,並沒有真正發現任何使用。字符串方法不從數據庫中的表返回值
我有一堆動態創建的文本框,文本框名稱與我的數據庫中的主鍵相關聯,所以當文本框出現時(在正常操作條件下,按鈕移到適當的文本框中)使用textbox.name
作爲字符串方法的輸入,希望該方法將從數據庫返回相應的值並將其分配給文本框。
現在,我沒有收到任何錯誤,但它總是返回一個空字符串,或者如果我用任何變量聲明瞭字符串,那麼它會在文本框中顯示該變量,告訴我在文本框中顯示數據工作正常,我的問題在於我的方法。
public string DisplayValues(string BID)
{
string result = string.Empty;
using (MySqlConnection myCon = new MySqlConnection("datasource = localhost; port = 3306; username = root; password = root"))
{
using (MySqlCommand myCmd = new MySqlCommand("SELECT * FROM table_raw WHERE id = '@value';", myCon))
{
try
{
myCon.Open();
myCmd.Parameters.AddWithValue("@value", BID);
using (MySqlDataReader myRead = myCmd.ExecuteReader())
{
while (myRead.Read())
{
result = myRead.GetString("_VAL").ToString(); //looks for column _VAL where id = the methods input value.
}
myRead.Close();
}
}
catch (MySqlException e)
{
MessageBox.Show(e.ToString());
}
finally
{
myCon.Close();
}
}
}
return result;
}
再次,我沒有得到任何錯誤,我只是沒有得到任何數據到我的文本框中。
實現: textbox.text = DisplayValues(tbID); //tbID is declared elsewhere
因此正在發生的事情是,文本框中顯示空白。
當我改變string result = string.Empty;
到string result = "1"
然後將文本框顯示1
這就是我已經和正在發生的事情,我想要什麼(如果不是明顯)是使textbox.text
顯示的數據在我的數據庫_VAL
列在主鍵相當於textbox.name
其他注意事項,_VAL
是一個varchar()
數據類型,是一個字符串,在數據庫中它被存儲爲varchar()
,我快要瘋了用.ToString
出於純粹的挫折感。 (消除疑問),數據庫是好的,因爲我正在向它寫入數據,只需要現在讀取那些數據到那些盒子。
我的表單上有很多文本框(每個文本框都帶有一個生成的名稱,這也是我數據庫中的主鍵),這就是爲什麼我要以這種方式實現此方法的原因。
我想這樣做(我是一箇中等程度的程序員),但如果有一個「更好」的方式,我會在這個工作後招待那個選項。
我希望我已經包括了一切。
太愛了。
有趣的是,我使用的是列名,我通常會這樣做,但將其更改爲*是因爲我沒有得到我的結果。但是謝謝你......這個作品,我認爲它可能是簡單的。 -gugs和拖船 –