【问题标题】:How to Bind a GridView from database如何从数据库绑定 GridView
【发布时间】:2013-09-23 13:31:59
【问题描述】:

如何绑定一个GridView?

我想在网格视图中显示我的表格数据。

我创建了 SQL 表 EmpDetail 与列 ID, Name, Salary Data

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案1】:

    根据您的情况尝试以下代码

    希望对你有帮助

    protected void GridviewBind ()
    {
        using (SqlConnection con = new SqlConnection("Data Source=RapidProgramming;Integrated Security=true;Initial Catalog=RPDB"))
        {
            con.Open();
            SqlCommand cmd = new SqlCommand("Select Name,Salary FROM YOUR TABLE", con);
            SqlDataReader dr = cmd.ExecuteReader();
            GridView1.DataSource = dr;
            GridView1.DataBind();
            con.Close();
        }
    }
    
    <asp:GridView ID="GridView1" runat="server" BackColor="White" 
                  BorderColor="#3366CC" BorderStyle="None" 
                  BorderWidth="1px" CellPadding="4"
                  style="text-align: center; margin-left: 409px" Width="350px">
      <FooterStyle BackColor="#99CCCC" ForeColor="#003399" />
      <HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" />
      <PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" />
      <RowStyle BackColor="White" ForeColor="#003399" />
      <SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
      <SortedAscendingCellStyle BackColor="#EDF6F6" />
      <SortedAscendingHeaderStyle BackColor="#0D4AC4" />
      <SortedDescendingCellStyle BackColor="#D6DFDF" />
      <SortedDescendingHeaderStyle BackColor="#002876" />
    </asp:GridView>;
    

    【讨论】:

    • 您不需要关闭连接 (con.Close();),因为 IDisposable 类的 SqlConnection 实现会为您在连接上调用 .Close()
    【解决方案2】:
    <asp:GridView ID="GridView1" runat="server">
    </asp:GridView>
    
    protected void Page_Load(object sender, EventArgs e) {
        if (!IsPostBack) {
            bindData();   
        }
    }
    
    public void bindData() {
            SqlConnection con=new SqlCponnection(ConnectionStrings);
            SqlDataAdapter da = new SqlDataAdapter("select * from  Your TableName", con);
            DataSet ds = new DataSet();
            try {
                da.Fill(ds, "YourTableName");
                GridView1.DataSource = ds;
                GridView1.DataBind();
            } catch (Exception e) {
               Response.Write( e.Message);
            } finally {
                ds.Dispose();
                da.Dispose();
                con.Dispose();
            }
    

    【讨论】:

      【解决方案3】:

      为了运行此代码,您需要将连接字符串的凭据 myServerName\myInstanceName、myDataBase、myUsername、myPassword 替换为您的

      using System.Data;   
      using System.Data.SqlClient;
      
      string sConnectionString = @"Data Source=myServerName\myInstanceName;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;";
      
      protected void Page_Load(object sender, EventArgs e){
          if(!IsPostBack)
              BindGridView();   
      }
      
      private void BindGridView() {             
          DataTable dt = new DataTable();           
          SqlConnection con = null;         
      
          try {
              string sQuery = "SELECT ID, Name, Salary FROM EmpDetail";
      
              SqlConnection con = new SqlConnection(sConnectionString);
              con.Open();
              SqlCommand cmd = new SqlCommand(sQuery, con); 
              SqlDataReader sdr = cmd.ExecuteReader();
      
              dt.Load(sdr);
              Gridview1.DataSource = dt;
              Gridview1.DataBind();
          }
          catch{ }
          finally{
              dt.Dispose();
              con.Close();
          }
      }
      

      【讨论】:

        【解决方案4】:

        试试这个....

         protected void Page_Load(object sender, EventArgs e)
        {
            using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["myDB"].ConnectionString))
            {
                SqlCommand cmd = new SqlCommand("select * from Table1", conn);
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                GridView1.DataSource = dr;
                GridView1.DataBind();
                conn.Close();
            }
        
        }
        
        <div>
            <asp:GridView ID="GridView1" runat="server"></asp:GridView>
        </div>
        

        【讨论】:

          【解决方案5】:

          您可以简单地使用 SqlDataSource。您可以将 SqlDataSource 从显示为 Data、SqlDataSource 的工具箱中移出。然后,您将使用智能标记配置数据源。然后使用 gridview 上的智能标记,选择您放置在 aspx 页面上的 SqlDataSource。这真的很快,几乎不需要编码。 http://msdn.microsoft.com/En-us/Library/z72eefad.aspx 这将向您展示更多内容。希望这对你有帮助!

          【讨论】:

            【解决方案6】:
            use Class7917
            select * from Emp
            alter table Emp add images varchar(100)
            sp_helptext 'usp_emp_insert_update'
            alter proc usp_emp_insert_update  
            @empid int,  
            @name varchar(50),  
            @cid int,  
            @sid int,  
            @dob datetime,  
            @isactive int,  
            @hobbies varchar(100),
            @images varchar(100)  
            as  
            begin  
             if(@empid=0)  
              begin  
               insert into Emp(Name,cid,sid,dob,isactive,hobbies,images)  
               values(@Name,@cid,@sid,@dob,@isactive,@hobbies,@images)  
              end  
             else  
              begin  
               update Emp set Name=@name,cid=@cid,sid=@sid,  
               dob=@dob,isactive=@isactive,hobbies=@hobbies,images=@images   
               where EmpID=@empid  
              end  
            end
            truncate table Emp
            

            【讨论】:

            • 感谢您发布问题的完整解决方案(分为 6 个部分/答案),但它似乎超出了典型的 SO 格式。
            • 欢迎来到 SO。请完成描述,而不是只写源代码。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-08-06
            • 1970-01-01
            • 1970-01-01
            • 2012-04-25
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多