在c#中,我的数据网格没有显示行

时间:2013-08-08 18:26:20

标签: c# data-binding datagrid

我有一个数据网格,我填充了一个数据集,有几个是这样做的,它们有效,只有一个没有,为什么?

代码

<asp:DataGrid ID="dgServer" runat="server" 
    AutoGenerateColumns="False" AllowSorting="True" 
    ondeletecommand="dataGrid1_DeleteCommand" 
    oneditcommand="dataGrid1_EditCommand" 
    OnSortCommand="dataGrid1_SortCommand">
            <AlternatingItemStyle BackColor="#C1D0EC" />
            <Columns>
                <asp:EditCommandColumn  CancelText="Cancel" EditText="Editar" 
                    UpdateText="Update">
                    <HeaderStyle Wrap="False" />
                    <ItemStyle Wrap="False" />
                </asp:EditCommandColumn>
                <asp:ButtonColumn CommandName="Delete" Text="Borrar"></asp:ButtonColumn>
                <asp:BoundColumn DataField="Id" HeaderText="Id" SortExpression="Id"
                     Visible="False"></asp:BoundColumn>
                <asp:BoundColumn DataField="Server" HeaderText="Servidor" 
                    SortExpression="Server" >
                </asp:BoundColumn>

        <asp:BoundColumn DataField="Port" HeaderText="Puerto" SortExpression="Port"
                   ></asp:BoundColumn >
                    <asp:BoundColumn DataField="User" HeaderText="Usuario" SortExpression="User"
                   ></asp:BoundColumn >
                    <asp:BoundColumn DataField="Password" HeaderText="Password" SortExpression="Password"
                   ></asp:BoundColumn >
                   <asp:BoundColumn DataField="PassAuten" HeaderText="PassAut" SortExpression="PassAut">
                   </asp:BoundColumn>



            </Columns>
            <EditItemStyle BackColor="#CCCCCC" />
            <HeaderStyle BackColor="#0B63A2" ForeColor="White" />
        </asp:DataGrid>

如何在其他方面完成并且有效:

 public void LlenarDataGridServer()
    {

            //read = Con.executar_re("Select * from SMTP");
            //dataGrid1.DataSource = read.Tables[0];
            //dataGrid1.DataBind();
        DataSet verServer = Con.executar_re("select * from dbo.smtp");

        dgServer.DataSource = verServer.Tables[0];
        dgServer.DataBind();


    }

所以最新消息,这让我很伤心。感谢。

编辑:是的,表已设置,我可以从sql server访问数据,是我计划更新的1行。

2编辑:相同的行正在填充其他DG,如

 public void LlenarDatagridConsecutivos()
    {

        read = Con.executar_re("select * from TypeCConsecutiveDocument");
        dgConsecutivos.DataSource = read.Tables[0];
        dgConsecutivos.DataBind();

    }

Con.etc:

 public DataSet executar_re(string comando)
    {
        try
        {

            connnection01.Open();

            SqlCommand command01 = new SqlCommand();

            command01.CommandText = comando;
            command01.Connection = connnection01;

            SqlDataReader re01 = command01.ExecuteReader(CommandBehavior.CloseConnection);

            DataSet ds = Convert(re01);

            re01.Close();
            connnection01.Close();
            return ds;
        }
        catch (SqlException sqle)
        {

            System.Diagnostics.Debug.WriteLine(sqle.ToString());

            DataSet ds = new DataSet();
            return ds;

        }

2 个答案:

答案 0 :(得分:1)

我不知道Convert方法中发生了什么,但是,请参阅此链接,了解如何使用SqlDataReader:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx

应该是这样的:

List<IDataRecord> records = new List<IDataRecord>();
while(re01.Read())
{
    //add record to list
    records.Add((IDataRecord)re01);
}
//records now has your list of data.
re01.close();

答案 1 :(得分:0)

我明白了,这真的很奇怪:

  1. 我将表名从smtp更改为mailServer
  2. 我将列名称放在[name]
  3. 我摆脱了DG并把它放在一个改变的标签中
  4. 我认为更可能是1,2。

    有趣的事情正在发生着一些名字:o

    编辑:看起来更好