【问题标题】:C#: How to fill data to DataGridView through WCF Service?C#:如何通过 WCF 服务向 DataGridView 填充数据?
【发布时间】:2016-05-17 01:16:55
【问题描述】:

因此,当加载表单时,我试图将数据库中的数据放入客户端应用程序中的DataGridView(在我的情况下为movieGridView)。 我以前试过这个:

来自 WCF 的代码Service.cs:

public DataSet getMovieData()
{
    sqlcon.Open();
    SqlCommand sqlcom = new SqlCommand("SELECT * FROM tb_movie", sqlcon);
    SqlDataAdapter da = new SqlDataAdapter(sqlcom);
    DataSet ds = new DataSet();
    da.Fill(ds);
    sqlcom.ExecuteNonQuery();

    sqlcon.Close();
    return ds;
}

来自 WCF 的代码IService.cs:

[OperationContract]
DataSet getMovieData();

客户端应用程序代码:

    private void DeleteMovie_Load(object sender, EventArgs e)
    {
        DataSet ds = new DataSet();
        ds = obj.getMovieData();
        movieGridView.DataSource = ds;
    }

[OperationContract] 当然已经在[ServiceContract] 中了。表单加载没有任何错误,并且需要一些时间来加载(也许它正在尝试从数据库中获取数据),但DataGridView 什么也没显示,它是空白的。不,表名没有错,连接代码也很好,因为我尝试过登录并成功。有人能帮我吗?谢谢!

【问题讨论】:

    标签: c# winforms wcf datagridview


    【解决方案1】:

    您可以尝试删除 sqlcom.ExecuteNonQuery(); ?

    也可以尝试添加 sqlcom.CommandType.Text

    【讨论】:

    • 刚刚试过了,不行,还是空白。有什么建议吗?
    • 哇,好用!我需要将movieGridView.DataSource = ds; 更改为movieGridView.DataSource = ds.Tables[0];
    【解决方案2】:

    你忘了在gridview中绑定数据

    movieGridView.DataSource = ds;
    movieGridView.DataBind();
    

    【讨论】:

    • WindowsForm 应用程序中没有 DataBind() 方法 :( 这仅在 Web 应用程序中可用...
    • 哦,对不起!我认为这是一个网络应用程序。
    猜你喜欢
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多