2012-10-26 44 views
0
using System; 
using System.Data; 
using System.Data.SqlClient; 
using System.Configuration; 

public partial class _Default : System.Web.UI.Page 
{ 
protected void Button1_Click(object sender, EventArgs e) 
{ 
    SqlConnection conn = new SqlConnection(
     "Data Source=PTZ1\\SQLEXPRESS;Initial Catalog = test; Integrated Security=SSPI;User ID=sa; [email protected]; Trusted_Connection=True;"); 

    DataSet ds = new DataSet(); 
    SqlDataAdapter adapter = new SqlDataAdapter(); 
    try 
    { 
     conn.Open(); 
     SqlCommand cmd = new SqlCommand("select * from testing", conn); 
     adapter.SelectCommand = cmd; 
     adapter.Fill(ds, "First Table"); 

     foreach (DataTable tables in ds.Tables) 
     { 
      ListBox1.Items.Add(tables.TableName); 

     } 
     conn.Close(); 
    } 
    catch (Exception ex) 
    { 
     Label1.Text = "Error in execution " + ex.ToString(); 
    } 
} 

}数据和文本字段

显示它,我有以下程序在那里我从表中读取数值,并希望在显示文本字段的表值按钮点击。现在当我点击按钮时,它只是在列表框中继续显示第一张表

有人可以指导我通过我的错误吗?

回答

2

我想你需要显示DataTableDataRow中存在的值。在下面的代码片段中,columnName指的是testing TableColumn,您要在ListBox中显示。

foreach (DataRow row in ds.Tables["First Table"].Rows) 
{ 
    ListBox1.Items.Add(row["columnName"].ToString()); 
} 

OR

foreach (DataRow row in ds.Tables[0].Rows) 
{ 
    ListBox1.Items.Add(row["columnName"].ToString()); 
} 
+0

谢谢!像魅力一样工作! – Esha

1

tables.TableName给人这是表的名称 “第一表” itself.So,它不断显示相同。

更好地使用此代码。

if(!ds.Tables.Count>1) 
{ 
foreach (DataRow row in ds.Tables[0].Rows) 
{ 
     ListBox1.Items.Add(row["columnName"].ToString()); 
} 
} 
+0

和我的一样的答案 –

+0

@FurqanSafdar是的,因为答案是一样的:=) –

+0

@FurqanSafdar:只是证明你可能是对的。它可以,我+你们俩(你们是第一个,我认为投票和鼓励低代表用户是很重要的)。 ;-) – Chris

0
 SqlCommand cmd = new SqlCommand("select * from testing", conn); 
      MySqlDataReader msqlreader = cmd.ExecuteReader(); 
      while (msqlreader.Read()) 
      { 
      listBox1.Items.Add(msqlreader(0); 
      } 

林不知道这是否是你所需要的,但希望它有助于