2011-09-30 158 views
0

我在C#是一个初学者,所以它不是鼓励我看到你对我的基本问题否决...味精BOX概率在C#

这是一个按钮在消息框中的结果显示我的从我的BD中选择。

我得到的错误:参数“2”:无法从“对象”到“串”, 参数转换成“3”:无法从“对象”转换为“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

不知道为什么这是获取DV'd。他先试了一下,然后发布了他的代码和错误消息。不能要求别的。 :) –

回答

2

尝试,

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()); 
+0

错误'System.Windows.Forms.MessageBox.Show(string,string)'的最佳重载方法匹配有一些无效参数 – FrankSharp

+0

错误'WindowsFormsApplication5.Form1'不包含' textBox1_TextChanged'并且没有扩展方法'textBox1_TextChanged'接受'WindowsFormsApplication5.Form1'类型的第一个参数可以找到(你是否缺少using指令或程序集引用?) – FrankSharp

+0

同样的错误它的网络 – FrankSharp

2

夫妇的事情,我会在这里添加。

我不认为呼叫

thisreader["id_Client"].ToString() 

是DBNull的安全,这意味着如果实际值从数据库返回的是NULL,这可能会导致问题。其次,在用户点击所有MessageBox之前,您的数据库服务器连接将不会被关闭。这可能不是预期的行为。我几乎总是用一个DataTable和一个SqlDataAdapter来填充它,这样我就知道我已经把所有的数据从服务器中取出,并且我的连接已经关闭,所以我没有在服务器上占用额外的资源。

也是另一种东西,因为你是新来的C#你

thisreader.Close(); 
thisConnection.Close(); 

可能不会得到执行,你需要或者做

的try/catch /终于

或者一个

使用()

声明。只是给你一些最佳实践的东西来思考。