我是c#的初学者,所以看到你在我的基本问题上投票,我感到很不鼓舞。
这是一个按钮,用于在消息框中显示我从BD中选择的结果。
我得到错误:参数'2':不能从'对象'转换为'字符串',参数'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();
}
试试,
MessageBox.Show(thisreader["id_Client"].ToString() + " " +
thisreader["numéro_Teléphone"].ToString());
阅读MSDN文档了解更多详细信息。
编辑:使用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());
我想在这里补充几件事。
我不认为这个电话
thisreader["id_Client"].ToString()
是DBNull安全的,这意味着如果从数据库返回的实际值是NULL,这可能会导致问题。
其次,在用户单击所有messagebox之前,不会关闭与数据库服务器的连接。这可能不是预期的行为。我几乎总是使用一个DataTable和一个SqlDataAdapter来填充它,这样我就知道我从服务器返回了所有的数据,并且我的连接已经关闭,所以我没有使用服务器上的额外资源。
还有另一件事,因为你是c#新手,你的
thisreader.Close();
thisConnection.Close();
可能不会被执行,您需要执行
try/catch/finally
或
使用()
语句。只是给你们一些最佳实践的东西供你们思考。