我正在使用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();
有人对此有所了解吗?这是我的实际代码...
答案 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();