【发布时间】:2017-09-17 13:38:38
【问题描述】:
我正在尝试从组合框中的数据库加载项目,但在代码中出现了这个意外错误,似乎没有明显的原因。请帮忙。 错误:参数 1:无法从 'string' 转换为 'int'。 在数据库中,“PortName”的数据类型是 Varchar。
void FillCombo()
{
SqlConnection conn = new SqlConnection(global::flight_management.Properties.Settings.Default.conn);
string sql = "SELECT PortName FROM PORTS";
SqlCommand exesql = new SqlCommand(sql, conn);
SqlDataReader myReader;
try
{
conn.Open();
myReader = exesql.ExecuteReader();
while(myReader.Read())
{
string sName = myReader.GetString("PortName");
// ERORR HERE: Argument 1: Cannot convert from 'string' to 'int'
ComboFromA.Items.Add("sName");
}
}
catch (Exception ex) {lblError.Text = "Error Loading Airports: "+ ex.Message;}
finally {conn.Close();}
}
【问题讨论】:
-
我从您的代码中注意到,其中似乎有不同的职责组合。在一种方法中进行数据访问并不是最佳实践,该方法也在 UI 的组合框中创建项目。它可能只是纯粹的示例代码,但仍然需要考虑:-)
标签: c# types type-conversion sqldatareader datareader