c#中的MSG BOX问题



我是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

使用()

语句。只是给你们一些最佳实践的东西供你们思考。

最新更新