我是c#的初学者所以看到你对我的基本问题进行投票并不令人鼓舞......
这是一个按钮,在消息框中显示我从BD中选择的结果。
我收到错误:参数'2':无法从'object'转换为'string', 参数'3':无法从'object'转换为'System.Windows.Forms.MessageBoxButtons'
谢谢你的帮助!
private void Button1Click(object sender, EventArgs e)
{
thisConnection.Open();
SqlCommand thisCommand = thisConnection.CreateCommand();
thisCommand.CommandText = "Select id_Client,numéro_Teléphone from Clients";
SqlDataReader thisreader = thisCommand.ExecuteReader();
while (thisreader.Read())
{
MessageBox.Show(thisreader["id_Client"],thisreader["numéro_Teléphone"]);
}
thisreader.Close();
thisConnection.Close();
}
答案 0 :(得分:2)
尝试,
MessageBox.Show(thisreader["id_Client"].ToString() + " " +
thisreader["numéro_Teléphone"].ToString());
阅读MSDN doc了解更多详情。
编辑:
使用System.Text.StringBuilder追加字符串。
System.Text.StringBuilder sb=new System.Text.StringBuilder();
while (thisreader.Read())
{
sb.Append("\n" + thisreader["id_Client"].ToString() + " " +
thisreader["numéro_Teléphone"].ToString());
//or
//sb.Append(string.Format("\n{0} {1}",thisreader["id_Client"],thisreader["numéro_Teléphone"]));
}
MessageBox.Show(sb.ToString());
答案 1 :(得分:2)
我会在这里添加一些东西。
我不认为这个电话
thisreader["id_Client"].ToString()
是DBNull安全的,这意味着如果从数据库返回的实际值为NULL,则可能会导致问题。
其次,在用户单击所有MessageBox之前,不会关闭与数据库服务器的连接。这可能不是预期的行为。我几乎总是使用DataTable和SqlDataAdapter来填充它,这样我知道我从服务器返回了所有数据,并且我的连接已经关闭,因此我没有在服务器上使用额外的资源。
另外还有一件事,因为你是C#的新手
thisreader.Close();
thisConnection.Close();
可能无法执行,您需要执行
尝试/捕捉/终于
或
使用()
语句。只是给你一些最佳实践的东西来考虑。