我正在尝试用英里填充文本框。我有一个存储路线和里程的表,其中有一个填充有这些路线的下拉列表。当我尝试将英里数读取到文本框中时,在以下代码中(对于GetInt32
和GetDecimal
,都收到编译时错误“无法将'string'转换为'int'”。
private void location_comboBox_SelectedIndexChanged(object sender, EventArgs e)
{
string conString = "****ConnectionString*****";
string query = "SELECT * FROM Location_Table WHERE Route = '" +
location_comboBox.Text + "';"; // simplified, actual code uses parametrized query
SqlConnection con = new SqlConnection(conString);
SqlCommand cmd = new SqlCommand(query, con);
con.Open();
SqlDataReader myReader = cmd.ExecuteReader();
while (myReader.Read())
{
String Miles = myReader.GetInt32("Miles").ToString();
mileage_textbox.Text = Miles;
}
}
第String Miles = myReader.GetInt32("Miles").ToString();
行出现错误
无法将“字符串”转换为“ int”
这很有意义,因为SqlDataReader.GetInt32
需要某种索引(“从零开始的列序。”),但是我想使用列名
数据库中的列类型:
答案 0 :(得分:3)
String Miles = myReader.GetDecimal(myReader.GetOrdinal(“ Miles”))。ToString();