【发布时间】:2014-04-30 12:17:12
【问题描述】:
我正在尝试将我的 SQL Server Express 数据库链接到 c# 应用程序中的图表。我正在尝试提取一些员工的年龄以将它们显示在条形字符中。这是我的代码
string constring = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\Michael\\Downloads\\Employee\\Employee\\Employee\\EmployeeDetails.mdf;Integrated Security=True;User Instance=True;Initial Catalog=Employee";
SqlConnection conDatabase = new SqlConnection(constring);
SqlCommand cmdDatabase = new SqlCommand("Select * from Employee;", conDatabase);
SqlDataReader myReader;
try{
conDatabase.Open();
myReader=cmdDatabase.ExecuteReader();
while(myReader.Read())
{
this.chart1.Series["Age"].Points.AddXY(myReader.GetString("FirstName"), myReader.GetInt32("Age"));
}
}
当我编译我的程序时,我收到 4 条错误消息,它们与这一行有关:
(myReader.GetString("FirstName"), myReader.GetInt32("Age"))
错误信息是:
“System.Data.Common.DbDataReader.GetString(int)”的最佳重载方法匹配有一些无效参数
参数 1:无法从 'string' 转换为 'int' 'System.Data.Common.DbDataReader.GetInt32(int)' 的最佳重载方法匹配有一些无效参数
论点 1:无法从 'string' 转换为 'int'
SQL Server Express 数据库将VARCHAR 用于FirstName,将INT 用于Age
我做错了什么?
【问题讨论】:
-
好的,我已经修改了代码并且它可以工作,但它只显示数据库中的第一个人,我如何显示所有员工?
-
解决了使用,一个for循环