C# Datatable:Datatable结果中的System.Byte[]值
value1的结果给出错误。col2的数据类型是int。col1的数据类型是string。即使我将字符串值或int值置于if条件中,它也只接受int值C# Datatable:Datatable结果中的System.Byte[]值,c#,mysql,datatable,C#,Mysql,Datatable,value1的结果给出错误。col2的数据类型是int。col1的数据类型是string。即使我将字符串值或int值置于if条件中,它也只接受int值 string str = "SELECT col1," + "if(col2=0,col1,col2) col2," + "col3" + "FROM tab
string str = "SELECT col1,"
+ "if(col2=0,col1,col2) col2,"
+ "col3"
+ "FROM table1"
+ "ORDER BY col1 ASC";
connection.Open();
cmd = new MySqlCommand(strdept_name, connection);
adapter = new MySqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
connection.Close();
cmd.Parameters.Clear();
string value1 = dt.Rows[i].Field<string>("col2").ToString();
请帮助我理解这里有什么问题?您可以使用concat将col2更改为string,col2或将col1转换为int,选择一个
string str = "SELECT col1,"
+ "if(col2=0,col1,concat('',col2)) col2,"
+ "col3"
+ "FROM table1"
+ "ORDER BY col1 ASC";
connection.Open();
cmd = new MySqlCommand(strdept_name, connection);
adapter = new MySqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
connection.Close();
cmd.Parameters.Clear();
string value1 = dt.Rows[i]["col2"].ToString();
尖括号中的类型必须与数据库中的类型匹配,否则将发生异常。然后可以转换为c.string value1=dt.Rows[i].Fieldcol2.ToString中的字符串@我也试过了。我收到错误“指定的强制转换无效”。结果为字节[]。然后尝试字节[]值1=dt.Rows[i]。Fieldcol2;然后可以使用stringvalue2=Encoding.UTF8.GetStringvalue1获取字符串;谢谢@jdweng。它奏效了: