【问题标题】:Cannot implicitly convert type 'System.Data.DataSet' to 'string'无法将类型“System.Data.DataSet”隐式转换为“字符串”
【发布时间】:2012-05-22 09:07:39
【问题描述】:

下面的代码是 web 方法(这是最常见的一种,你可以在任何地方看到它),但我一直从标题中得到错误。我是 .NET 的起步者,所以如果有人能指出我正确的方向,请这样做。

SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["mySQLconn"].ConnectionString);

[WebMethod(Description = "Select Customers")]
    public string GetVersionofSelectedCustomer(string versionEmail)
    {

        string select = "SELECT version FROM customer WHERE EMAIL = '" + versionEmail + "'";
        SqlDataAdapter adapter = new SqlDataAdapter(select, myConnection);

        DataSet custDS = new DataSet();            
        //adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
        adapter.Fill(custDS, "Customers");

        return custDS;

    }

connection 在 Web.config(本地连接)中定义,return custDS; 是它失败的地方。

【问题讨论】:

  • 你为什么要返回一个DataSet,也许你可以返回一个包含客户列表的JSON响应。

标签: asp.net web-services soap


【解决方案1】:

您正在返回数据集,因此您应该使用返回类型为Dataset

public Dataset GetVersionofSelectedCustomer(string versionEmail)
{
    //add your code to return dataset
}  

【讨论】:

    【解决方案2】:

    您的函数的返回类型是string,而您正试图返回一个DataSet 对象。你可以这样尝试:

    public DataSet GetVersionofSelectedCustomer(string versionEmail)
    {
         string select = "SELECT version FROM customer WHERE EMAIL = '" + versionEmail + "'";
         SqlDataAdapter adapter = new SqlDataAdapter(select, myConnection);
    
         DataSet custDS = new DataSet();            
         //adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
         adapter.Fill(custDS, "Customers");
    
         return custDS;
    
    }
    

    【讨论】:

    • 嗯,我不知道为什么我没有看到,但非常感谢。它就像一个魅力。
    【解决方案3】:

    您的方法签名返回一个字符串,但您返回的是一个数据集 - 不清楚您想在这里做什么 - 可能只是更改签名以返回数据集?

    【讨论】:

      猜你喜欢
      • 2013-08-17
      • 1970-01-01
      • 2014-07-16
      • 2020-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-09
      • 2014-05-15
      相关资源
      最近更新 更多