【问题标题】:Create/Display DataGrid from a table (database) C#从表(数据库)C# 创建/显示 DataGrid
【发布时间】:2012-11-18 13:17:01
【问题描述】:

我正在尝试在 C# 中显示一个 DataGrid(适用于应用程序 WindowsMo​​bile)。我在 DataConnections 中有一个数据库(“pruebaDB.sdf”)和一个表(“tablaMercancia”)。

在 DataSource 中我还有“pruebaDBDataSet”和“tablaMercancia”。

如何在 DataGrid 中显示数据表?

我使用 SmartDevice 项目(我不能使用 DataGridView,我只能使用 DataGrid)。

我可以在 DataGrid 中显示一个新表(为代码创建),但我不知道在我的数据库中显示一个现有表。

string conSTR = "Data Source=" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)) + "\\pruebaDB.sdf;Persist Security Info=False";

SqlCeConnection connection = new SqlCeConnection(conSTR);

string sql = "SELECT * FROM tablaMercancia";
connection.Open();

SqlCeCommand cmd = new SqlCeCommand(sql, connection);
SqlCeDataAdapter da = new SqlCeDataAdapter(cmd);

//...............
//...Any idea?
//...............

connection.Close();

有什么想法吗?

谢谢!!!

【问题讨论】:

    标签: c# sql database datagrid windows-mobile


    【解决方案1】:

    请按照以下更改 Datagridview 名称:

        string conSTR = "Data Source=" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)) + "\\pruebaDB.sdf;Persist Security Info=False";
    
        SqlCeConnection connection = new SqlCeConnection(conSTR);
    
        string sql = "SELECT * FROM tablaMercancia";
        connection.Open();
    
        SqlCeCommand cmd = new SqlCeCommand(sql, connection);
        SqlCeDataAdapter da = new SqlCeDataAdapter(cmd);
        DataSet ds=new DataSet();
        da.Fill(ds);
    
    
        //datagridview1 is name of datagridview in form:
        datagridview1.DataSource=ds.Tables[0];
    
        connection.Close();
    

    【讨论】:

    • 对不起,不行。我输入:dataGrid1.DataSource = da.Tables[0];但是(错误)“SqlCeDataAdapter”不包含“表”的定义
    • 我使用 DataGrid(没有 DataGridView)对不起
    • 请尝试使用新代码,使用 Dataset 更新并由 DataAdapter 填充
    • 对不起,错误:指定的表不存在。 [ 贸易表 ]。我在 ServerExplorer -> DataConnections -> pruebaDB.sdf 和 DataSources -> tablaMercancia 中有这个表。任何想法?谢谢!!!
    • 请把 DS 改成 ds 并检查数据表是否在数据集中?
    【解决方案2】:

    试试这个。

    string sql = "SELECT * FROM tablaMercancia";
    connection.Open();
    //SqlCeCommand cmd = new SqlCeCommand(sql, connection);
    SqlCeDataAdapter da = new SqlCeDataAdapter(sql, connection);
    DataSet ds=new DataSet();
    da.Fill(ds);
    

    【讨论】:

    • 对不起,错误:指定的表不存在。 [ tablaMercancia ].
    • 用数据集代替数据表试试?
    • 喜欢,对不起。查看@vikram jain 的回答。
    • 查看编辑。您在这里不需要 sqlcecommand 对象。将您的 sql 和连接传递给 Sqlcedataadapter。
    【解决方案3】:

    设计页面跟踪gridview或数据网格

    第一次使用命名空间using System.Data,SqlClient;

    sqlconnection con=new sqlconnection("string path");
    con.open();
    sqldataadapter da=new sqldataadapter("select * from emp",con);
    dataset ds=new dataset();
    da.fill(ds,"emp");
    gridview1.datasource=ds;
    gridview1.databind(); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多