c#中的MSG BOX问题

时间:2011-09-30 01:19:36

标签: c# ado.net

我是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();



    }

2 个答案:

答案 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();

可能无法执行,您需要执行

  

尝试/捕捉/终于

  使用

()

语句。只是给你一些最佳实践的东西来考虑。