我有一张如下图片。
我想将此列的每一行保存为数组元素。
我用C#编写了一个数据表语句。
con.Open();
string sql = "SELECT MA_BO_CAU_HOI FROM R_NGUOICHOI_BOCAUHOI where MA_NGUOI_CHOI="+ cbbten.SelectedIndex +"";
SqlDataAdapter adapter = new SqlDataAdapter(sql, con);
DataTable data = new DataTable();
adapter.Fill(data);
int[] number = (int[]) data.Columns[0];
con.Close();
但它不起作用。我该怎么做 谢谢你的帮助!!
答案 0 :(得分:2)
使用循环。
List<int> list = new List<int>();
foreach(DataRow row in data.Rows)
{
list.Add(int.Parse(row["ColumnName"]);
}
int[] number = list.ToArray();
此外,如果您了解LINQ
,则可以一次通过:
int[] number = tbl.AsEnumerable().Select(x => int.Parse(x["YourColumnName"].ToString())).ToArray();
编辑:关于数据的评论
使用CommandParameters
从数据库中获取数据。它将保护您免受SQL注入。还尝试使用块包装你的连接(我也不知道在哪里定义)。
using(SqlConnection con = new SqlConnection("your conn"))
{
con.Open();
string sql = "SELECT MA_BO_CAU_HOI FROM R_NGUOICHOI_BOCAUHOI where MA_NGUOI_CHOI=@Param1";
DataTable data = new DataTable();
using(SqlDataAdapter adapter = new SqlDataAdapter())
{
SqlCommand cmd = new SqlCommand(sql, con);
cmd.Parameters.AddWithValue("@Param1", cbbten.SelectedIndex);
adapter.SelectCommand = cmd;
adapter.Fill(data);
}
}