C# gridview赢得';t使用自定义连接字符串和自定义数据源填充

C# gridview赢得';t使用自定义连接字符串和自定义数据源填充,c#,asp.net,gridview,C#,Asp.net,Gridview,我已经设置了一个用户定义的连接字符串,现在尝试使用它填充gridview,断点显示连接字符串很好。也没有错误,但令人惊讶的是datatable没有收到任何值。尽管数据存在…我做错了什么 Default3.Aspx: <td colspan="2" align="center"> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"> </asp:GridV

我已经设置了一个用户定义的连接字符串,现在尝试使用它填充gridview,断点显示连接字符串很好。也没有错误,但令人惊讶的是datatable没有收到任何值。尽管数据存在…我做错了什么

Default3.Aspx:

<td colspan="2" align="center">
  <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">       
  </asp:GridView>     
</td>
protected void Page_Load(object sender, EventArgs e)
{
    string con = OracleDatabase.connection();
    String SelectCommand = "select * from EMP";

    OracleDataAdapter adp = new OracleDataAdapter(SelectCommand, con);
    DataTable dt = new DataTable();
    adp.Fill(dt);
    GridView1.DataSource = dt;
    GridView1.DataBind();
    /* 
    OracleDatabase.gridpopulate(SelectCommand, GridView1);
    GridView1.DataSource = OracleDatabase.gridpopulate(SelectCommand);
    GridView1.DataBind();
    */ 
    //i tried doing this by writting a function At class file also
}
public static string connection()
{
    oradb = ConfigurationManager.ConnectionStrings["ConnectionString"]
           .ConnectionString;
    string str = "Data Source="+db+";User ID="+userid+";Password="+password+";";
    oradb = String.Concat(oradb, str);        
    con = new OracleConnection(oradb);
    con.Open();
    return oradb;
}

/*(function for gridpopulate)
public static void gridpopulate(string SelectCommand,GridView grid1)
{
    string con =(ConfigurationManager.ConnectionStrings["ConnectionString"]
                 .ConnectionString);
    con = String.Concat(con, str);
    adp = new OracleDataAdapter(SelectCommand,con);
    DataTable dt = new DataTable();
    adp.Fill(dt);
    grid1.DataSource = dt;
    grid1.DataBind();
    //return dt;         
 }
*/
类文件:

<td colspan="2" align="center">
  <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">       
  </asp:GridView>     
</td>
protected void Page_Load(object sender, EventArgs e)
{
    string con = OracleDatabase.connection();
    String SelectCommand = "select * from EMP";

    OracleDataAdapter adp = new OracleDataAdapter(SelectCommand, con);
    DataTable dt = new DataTable();
    adp.Fill(dt);
    GridView1.DataSource = dt;
    GridView1.DataBind();
    /* 
    OracleDatabase.gridpopulate(SelectCommand, GridView1);
    GridView1.DataSource = OracleDatabase.gridpopulate(SelectCommand);
    GridView1.DataBind();
    */ 
    //i tried doing this by writting a function At class file also
}
public static string connection()
{
    oradb = ConfigurationManager.ConnectionStrings["ConnectionString"]
           .ConnectionString;
    string str = "Data Source="+db+";User ID="+userid+";Password="+password+";";
    oradb = String.Concat(oradb, str);        
    con = new OracleConnection(oradb);
    con.Open();
    return oradb;
}

/*(function for gridpopulate)
public static void gridpopulate(string SelectCommand,GridView grid1)
{
    string con =(ConfigurationManager.ConnectionStrings["ConnectionString"]
                 .ConnectionString);
    con = String.Concat(con, str);
    adp = new OracleDataAdapter(SelectCommand,con);
    DataTable dt = new DataTable();
    adp.Fill(dt);
    grid1.DataSource = dt;
    grid1.DataBind();
    //return dt;         
 }
*/

请按照以下步骤进行尝试,而不是从函数return Oracle connection object返回连接字符串并将其传递给适配器

OracleConnection con = OracleDatabase.connection();

public static OracleConnection connection()
{
 oradb =ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
 string str = "Data Source="+db+";User ID="+userid+";Password="+password+";";
 oradb = String.Concat(oradb, str);        
 con = new OracleConnection(oradb);
 con.Open();
 return con;
}

为什么要执行autogeneratecolumns=false?您需要将其设置为true,或者添加一些定义列的标记生成正确的连接字符串???是的…连接字符串很好…很抱歉回答datatable仍然没有接收任何数据…y'r逻辑看起来很好…但是由于未知原因,它没有填充网格…它是否正在运行@y'r end?是否已将AutoGenerateColumns设置为True??请查收