1
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; Password=sa@; 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();
    }
}

}

我有以下程序,我正在从表中读取值,并希望在单击按钮时在文本字段中显示表值。现在,当我单击按钮时,它只会继续在列表框中显示第一个表

有人可以指导我解决我的错误吗?

4

3 回答 3

4

我想您需要显示存在于DataRowa中的值DataTable。在下面的代码片段中,columnName 指的Columntesting Table您要在ListBox.

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

或者

foreach (DataRow row in ds.Tables[0].Rows)
{
    ListBox1.Items.Add(row["columnName"].ToString());
}
于 2012-10-26T10:02:21.823 回答
1

tables.TableName给出表的名称,即“第一表”本身。所以,它一直显示相同。

最好使用此代码。

    if(!ds.Tables.Count>1)
 { 
foreach (DataRow row in ds.Tables[0].Rows) 
{
        ListBox1.Items.Add(row["columnName"].ToString());
 } 
}
于 2012-10-26T10:05:56.213 回答
0
       SqlCommand cmd = new SqlCommand("select * from testing", conn);
            MySqlDataReader msqlreader = cmd.ExecuteReader();
            while (msqlreader.Read())
            { 
            listBox1.Items.Add(msqlreader(0);
            }

我不确定这是否是您需要的,但希望对您有所帮助

于 2012-10-26T10:07:21.110 回答