Получить столбцы таблицы базы данных? - PullRequest
1 голос
/ 12 января 2012

Привет, у меня есть таблица в базе данных с некоторыми столбцами, я хочу привязать только заголовки столбцов к выпадающему списку ........

Я пробовал способом, который работает в путиэто жесткий код, это код, который исполняется

      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Web;
      using System.Data;
      using System.Web.UI;
      using System.Web.UI.WebControls;
       using System.Data.OleDb;

      namespace WebApplication1
     {
    public partial class WebForm1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string Excelpath = Server.MapPath("~/ExcelFiles/TaskSheet.xlsx");
        string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Excelpath + ";Extended Properties='Excel 12.0;HDR=YES;'";
        OleDbDataAdapter DB = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", new OleDbConnection(connString));

        System.Data.DataSet DS = new System.Data.DataSet();
        DB.Fill(DS);
        Table t = new Table();


        foreach (DataTable table in DS.Tables) { 
            foreach (DataColumn column in table.Columns)
            {
                DropDownList list = new DropDownList(); list.Items.Add("Name"); list.Items.Add("Date"); list.Items.Add("Task");
                Label l = new Label(); l.Text = column.ColumnName;
                TableRow r = new TableRow();
                TableCell c = new TableCell();
                c.Controls.Add(l);

                TableCell c1 = new TableCell();
                c1.Controls.Add(list);

                r.Cells.Add(c);
                r.Cells.Add(c1);
                t.Rows.Add(r);

            }
        }
        Page.Form.Controls.Add(t);
    }
}
}

вместо привязки каждого отдельного столбца я хочу зациклить, что

я попробовал это

      public partial class WebForm1 : System.Web.UI.Page
          {
       protected void Page_Load(object sender, EventArgs e)
         {
          string Excelpath = Server.MapPath("~/ExcelFiles/TaskSheet.xlsx");
           string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +     Excelpath + ";Extended Properties='Excel 12.0;HDR=YES;'";
        OleDbDataAdapter DB = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", new OleDbConnection(connString));

        System.Data.DataSet DS = new System.Data.DataSet();
        DB.Fill(DS);
        Table t = new Table();


        foreach (DataTable table in DS.Tables) 
        { 
            foreach (DataColumn column in table.Columns)
            {
                string insertstring = @"select * from CUSTOMER_DETAILS1";
                SqlConnection conn = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DebitCare;Data Source=SSDEV7-HP\\SQLEXPRESS");
                conn.Open();
                SqlCommand cmd = new SqlCommand(insertstring, conn);
                SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                DataSet data = new DataSet();
                adapter.Fill(data);
                conn.Close();
                DropDownList list = new DropDownList();
                list.DataSource = data.Tables[0];
                list.Items.Add("data");
                list.DataBind();


                //ddlFrom.DataSource = data.Tables[0];
                //ddlFrom.DataValueField = "FromId";
                //ddlFrom.DataTextField = "From";
                //ddlFrom.DataBind();
               // DropDownList list = new DropDownList(); list.Items.Add("Name"); list.Items.Add("Date"); list.Items.Add("Task");
                Label l = new Label(); l.Text = column.ColumnName;
                TableRow r = new TableRow();
                TableCell c = new TableCell();
                c.Controls.Add(l);

                TableCell c1 = new TableCell();
                c1.Controls.Add(list);

                r.Cells.Add(c);
                r.Cells.Add(c1);
                t.Rows.Add(r);

            }
        }
        Page.Form.Controls.Add(t);
    }

}
}

У меня нет никаких ошибок в этом, но я не могу видеть cloumns в выпадающем списке ... может ли кто-нибудь помочь мне

1 Ответ

1 голос
/ 12 января 2012

Предполагается, что вы используете SQL Server (большое предположение)

Этот SQL получит список заголовков столбцов для таблицы, которую вы можете привязать к раскрывающемуся списку

select COLUMN_NAME from INFORMATION_SCHEMA.Columns
where Table_Name = 'MyTable'

Вы получите выпадающий список заголовков - не уверен, что это продвинет вас вперед так много

РЕДАКТИРОВАТЬ:

Упс - вы используете aren aren 'тЭто ваш ближайший к INFORMATION_SCHEMA для получения метаданных базы данных

OleDbConnection.GetOleDbSchemaTable()

с этим кодом для получения списка столбцов

cn.Open()

'Retrieve schema information about columns.
'Restrict to just the Employees TABLE.
schemaTable = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, _
              New Object() {Nothing, Nothing, "Your table", Nothing})

'List the column name from each row in the schema table.
For i = 0 To schemaTable.Rows.Count - 1
    Console.WriteLine(schemaTable.Rows(i)!COLUMN_NAME.ToString)
Next i

'Explicitly close - don't wait on garbage collection.
cn.Close()

Что я нашел здесь .Извините, это в VB.Net - достаточно простая работа для перевода на C # по мере необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...