我一直在努力与下面的方法一段时间,并没有真正发现任何使用。字符串方法不从数据库中的表返回值
我有一堆动态创建的文本框,文本框名称与我的数据库中的主键相关联,所以当文本框出现时(在正常操作条件下,按钮移到适当的文本框中)使用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和拖船 –