我想将列转换为字符串

时间:2016-12-02 12:02:31

标签: c# sql-server winforms

我有一张如下图片。

Image Example

我想将此列的每一行保存为数组元素。

我用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();

但它不起作用。我该怎么做 谢谢你的帮助!!

1 个答案:

答案 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);         
    }
}