服务端如何返回DataSet类型
winform程序,目前遇到的问题是这样的
我有一个服务器和一个客户机,服务器负责数据库的查询,客户发送查询字符串和接受服务器返回的结果
但是我想知道如果我需要的是一个dataset类型的返回结果,服务器用什么方法才能把这样的结果返回过来
用的是TCP连接,我目前只能让服务器返回string类型的结果
求大神指导
------解决方案--------------------把dataset的数据序列化,然后进行传输
------解决方案--------------------dataset以流的方式写成xml,然后生成xml的字符串传给客户端
客户端根据xml字符串在生成dataset
DataSet.WriteXml(...);
DataSet.ReadXml(...);
------解决方案--------------------写的示例如下:收到后转成 DataSet 是 ds.ReadXml
private void button1_Click(object sender, EventArgs e)
{
DataSet ds;
TcpClient tc;
//// 获取 ds 和连接 tc
WriteDataSet(ds, tc.GetStream());
}
private void WriteDataSet(DataSet ds, NetworkStream stream)
{
ds.WriteXml(stream, XmlWriteMode.WriteSchema);
}
------解决方案--------------------
这是正解 ,服务端只能返回XML形式的字符串,的在客户端生产。反序列化
------解决方案--------------------下面可以把收的数据写入c:\1.xml
FileStream fs = new FileStream(@"c:\1.xml", FileMode.Create);
int b;
while ((b = tc.GetStream().ReadByte()) != -1)
{
fs.WriteByte((byte)b);
}
fs.Close();
------解决方案--------------------最好是一次连接取一个数据集,马上断开,否则判断结束是个问题,因为 TCP 发送数据是论字节的。
------解决方案--------------------干嘛不序列化成字节