【发布时间】:2016-11-27 08:06:08
【问题描述】:
我的代码:
DataTable dt = new DataTable();
mySqlDataAdapter.Fill(dt);
int socot = dt.Rows.Count;
for (int i = 0; i < socot; i++)
{
String dn = dt.Rows[i][1].ToString();
String gduan = "SELECT tennha FROM duannha WHERE id=@id";
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conn;
cmd.CommandText = gduan;
cmd.Parameters.AddWithValue("@id", dn);
String gtennha = cmd.ExecuteScalar().ToString();
dt.Rows[i][1] = gtennha;
}
当我运行代码时,我收到一个错误。请帮我解决它。
【问题讨论】:
-
您想将 String 放入 Int32 变量中。然后先使用 Int32.Parse 进行转换。
-
如果您查看错误消息,您会注意到 ExecuteScalar 的返回值不能分配给整数类型的列。所以这里真的有些东西坏了。或者您从数据表中选择了无效列(索引 1 处的列),或者您应该从查询中获得不同的值,或者您试图将查询的返回值分配到错误的列(仍然是索引 1 处的列) )
-
不要忘记
using块cmd -
这不应该是一个单独的查询。这就是 JOIN 的用途。
标签: c# mysql visual-studio datatable format