高手帮忙看看。DS怎么通过Socket传递呢?

解决方案 »

  1.   

    晕死
    这实现起来没有什么特别的地方呀
    DataSet就是XML呀,XML是什么?就是String呀,你传String不就可以了吗?
      

  2.   

    如果要用socket,如果要用DS,则可以把DS系列化一下,即可传输回去
    建议使用WebService,下面给你一个例程由于使用了引用,因此DSResult就可以直接返回其中ClassMethods.DataError是我写的一个函数,用于把文本信息形成DataSet#region WebMethod GetExecuteQuery
    /// <summary>
    /// 执行SQL语句,并且返回TableName指定的数据表名。
    /// </summary>[WebMethod]
    public bool GetExecuteQuery(ref DataSet DSResult, string p_strQuery, string p_strTableName, string p_strSeed, string p_strCheck)
    {
    try
    {
    if (CheckSeed(p_strSeed, p_strCheck) == false)
    {
    DSResult = ClassMethods.DataMessage("身份校验错误!");
    return false;
    } SqlDataAdapter myCommand = new SqlDataAdapter (p_strQuery, CS);

    myCommand.Fill(DSResult, p_strTableName);
    return true;
    }
    catch(Exception ex)
    {
    DSResult = ClassMethods.DataError(ex);
    return false;
    }
    }#endregion
      

  3.   

    噢噢噢
    应该这样的,不要把太多不必要的代码给你[WebMethod]
    public bool GetExecuteQuery(ref DataSet DSResult, string p_strQuery, string p_strTableName, string p_strSeed, string p_strCheck)
    {
    try
    {
    SqlDataAdapter myCommand = new SqlDataAdapter (p_strQuery, CS);

    myCommand.Fill(DSResult, p_strTableName);
    return true;
    }
    catch(Exception ex)
    {
    DSResult = ClassMethods.DataError(ex);
    return false;
    }
    }#endregion
      

  4.   

    各位,我知道用WS非常容易、且直观。但我现在是要利用Socket来实现这个功能
      

  5.   

    我对Socket不是很熟悉,望高人不吝赐教,非常感谢
      

  6.   

    现在郁闷的是,我的MSDN不能用了,连帮助都没得看
      

  7.   

    序列化一下,不过把DataSet转化成xml也可以。
    up
      

  8.   

    服务器端:
    序列化DATASET
    using System.Xml.Serialization;
    using System.Data ;
    using System.IO;...
    1、将dataset XML序列化
    //
    //filename 为xml文件名
    private void SerializeDataSet(string filename)
    {
    XmlSerializer ser = new XmlSerializer(typeof(DataSet));
            
    // Creates a DataSet; adds a table, column, and ten rows.
    DataSet ds = new DataSet("myDataSet");
    DataTable t = new DataTable("table1");
    DataColumn c = new DataColumn("thing");
    t.Columns.Add(c);
    ds.Tables.Add(t);
    DataRow r;
    for(int i = 0; i<10;i++)
    {
    r = t.NewRow();
    r[0] = "Thing " + i;
    t.Rows.Add(r);
    }
    TextWriter writer = new StreamWriter(filename);
    ser.Serialize(writer, ds);
    writer.Close();
    }2、开始使用Socket传输将xml文档读入转换为byte数组,然后Socket.send
    具体实现代码不用给了吧^_^(偷懒中)3。客户端接收,写到一个XML文档中或用内存流(无所谓了)4、还原dataset
    。。
    DataSet ds=new DataSet("xx");
    ds.ReadXml("c:\\me.xml");
    5、其它该你忙会了,我歇会,等着接分^_^.
      

  9.   

    服务器端使用TcpListener,可以参照:
    ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconusingtcpservices.htm客户端使用Socket编程,将DataSet序列化后调用Socket.Send()发送,最后将DataSet还原即可。相关例子都可以在MSDN中找到。建议使用异步编程。