我有一个向客户发送文本的应用程序,我希望能够为它提供模板系统;完成的代码将使用我的数据库中的值填充toolStripDropDownButton,从数据库中提供描述,然后当用户单击描述时,要发送的文本框将预先填充数据库中的模板文本。
我已经通过使用消息框测试此代码开始了,但是代码将无法编译,因为第62行出现错误“没有重载方法'GetValues'需要0参数”,我想要一些指导关于如何在可能的情况下让我的代码工作的请。
违规代码如下,任何帮助将不胜感激
private void Form1_Load(object sender, EventArgs e)
{
try
{
panel1.Hide();
this.MaximizeBox = false;
SqlConnection conn = new SqlConnection("Data Source=tcp:CRUSADER,49172;Initial Catalog=HermesSMS;Persist Security Info=True;User ID=Admin;Password=w");
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
conn.Open();
comm.CommandText = ("Select Description FROM Templates");
SqlDataReader DR = comm.ExecuteReader();
MessageBox.Show(DR.GetValues()ToString());<-line 62
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
答案 0 :(得分:2)
没有超载方法&#39; GetValues&#39;取0参数
嗯,那是因为the GetValues
method没有超载,它接受零参数。它需要将object
个数组传递给该方法。请查看链接的MSDN文档中的示例:
Object[] values = new Object[reader.FieldCount];
int fieldCount = reader.GetValues(values);
Object[]
参数传递给GetValues
方法,然后将使用SqlDataReader
中的值填充该数组。
顺便说一句,我真的建议采用更强类型的数据访问方法。理想情况下使用像Entity Framework这样的东西,甚至是不推荐使用的Linq to Sql。将所有内容装入无类型object
会导致大量类型检查代码并且很有可能出错。