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

DataRowの に存在する値を表示する必要があると思います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 に答える