将数据表中的记录插入列表

时间:2012-01-08 04:43:49

标签: c# mysql list

我正在使用datatable从mysql数据库中检索1000条记录。我想将每条记录复制到列表中。但我不知道确切的语法。

以下是我要检索的以下代码:

cmdmysql.CommandText = "select * from marctest.spectrum";
conn.Open();

MySqlDataAdapter da = new MySqlDataAdapter(cmdmysql.CommandText, conn);
//MySqlDataReader reader;
DataTable dt = new DataTable();
da.Fill(dt);

dataGridView1.DataSource = dt;
dataGridView1.DataMember = dt.TableName;

// row = dataGridView1.DataSource.ToString();
//row = dt.TableName;
MySqlDataReader reader;
reader = cmdmysql.ExecuteReader();

List<string> mylist = new List<string>();

foreach(DataRow row1 in dt.Rows)
{
    mylist.Add(dt.Rows.ToString());
}

textBox1.Text = mylist.ToString();

有人对此有所了解吗?这是我的实际代码...

2 个答案:

答案 0 :(得分:2)

我不确定DataRow.ToString()是否会让你获得任何有用的东西(很可能只是对象类型)。

如果您希望每行中的数据作为字符串(可能以制表符分隔?),您可以尝试:

foreach(DataRow row1 in dt.Rows) {
   StringBuilder sb = new StringBuilder();
   foreach(DataColumn col in dt.Columns) {
      sb.Append(row1[col].ToString();
      sb.Append('\t');
   }
   mylist.Add(sb.ToString());
}

如果您的任何列的值为空值,那么这将会变暗,因此您可能需要处理它。

答案 1 :(得分:-1)

假设dt是查询结果,如果您只需要将这些结果转换为字符串,那么这应该有效:

foreach(DataRow row1 in dt.Rows)
    mylist.Add(row1.ToString();