2012-01-08 46 views
0

我正在使用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

我不知道做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()); 
} 

这会呱呱叫,如果你的任何列的有一个空值,你可能想要处理。

+0

thnx很多现在的工作..... – 2012-01-08 05:35:41

+0

@ nimish-deshpande:如果我的答案工作/帮助,为什么你切换接受的答案?另外,请随意点击StackOverflow上的*任何*答案(或问题)上的向上箭头,以帮助您。 – 2012-01-08 05:39:36

+0

其实我已经习惯了这个论坛网站...因为我对它很陌生... – 2012-01-08 05:40:41

-1

假设dt是查询结果,而如果你只需要转换这些结果为字符串,那么这应该工作:

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

我试图与上述解决方案...但它在列表retruns System.Data.DataRow.Collection ..以下是我修改后的代码: 列表 MYLIST =新名单(); foreach(DataRow row1 in dt.Rows) mylist.Add(dt.Rows.ToString()); } – 2012-01-08 05:01:57

+0

你能否在你的问题中提供查询代码,你也不应该接受我的答案,因为它不适用于你:) – 2012-01-08 05:08:47

+0

cmdmysql.CommandText =“select * from marctest.spectrum”; conn.Open(); MySqlDataAdapter da = new MySqlDataAdapter(cmdmysql.CommandText,conn); DataTable dt = new DataTable(); da.Fill(dt); dataGridView1.DataSource = dt; dataGridView1.DataMember = dt.TableName; MySqlDataReader阅读器; reader = cmdmysql.ExecuteReader(); – 2012-01-08 05:11:17

相关问题