0

この Web サービスを使用して列の合計を返そうとしましたが、うまくいきません。助けてください。ありがとうございます。私は Visual Studio 2010 を使用しています。エラーが返され続けます。System.InvalidOperationException: XML ドキュメントの生成中にエラーが発生しました。---> System.InvalidOperationException: DataTable をシリアル化できません。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data;
using MySql.Data.MySqlClient;

namespace Transcript_System
{
    /// <summary>
    /// Summary description for check
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class check : System.Web.Services.WebService
    {

        [WebMethod]
    public DataTable connectoToMySql()
    {
        string connString = "SERVER=localhost" + ";" +
            "DATABASE=transcriptdb;" +
            "UID=root;" +
            "PASSWORD=;";

        MySqlConnection cnMySQL = new MySqlConnection(connString);

        MySqlCommand cmdMySQL = cnMySQL.CreateCommand();

        MySqlDataReader reader;

        cmdMySQL.CommandText = "SELECT SUM( Score ) FROM faculty_table WHERE Mat_No='PSC0908888'";

        cnMySQL.Open();

        reader = cmdMySQL.ExecuteReader();

        DataTable dt = new DataTable();
        dt.Load(reader);


        cnMySQL.Close();

        return dt;
    } 
            }
        }
4

3 に答える 3

1

DataSet.GetXml() により、データセットからデータを xml 文字列として送信できます。

そして、ユーザーは DataSet.ReadXml() でそれを逆シリアル化できます

そして、DataSet.Tables によってデータセットからデータテーブルを取得します

于 2013-10-31T18:46:05.830 に答える
0

Web メソッドは DataTable タイプのオブジェクトを返しています。おそらく、フェッチされた Datatable インスタンスではなく、カウントの値を持つ int/string だけを返すように変更したいでしょう!

于 2013-10-31T18:44:41.707 に答える