Старый вопрос, но технологии предоставляют новые решения.
Вы можете использовать Protocol Buffers DataReader Extensions for .NET для сериализации SqlDataReader и может быть передан на сессии или направлены клиенту
Пример:
string connstring1 = "Data Source=server1;Initial Catalog=northwind;user=xxx;password=xxx";
//Serializing an IDataReader into a ProtoBuf:
Stream buffer = new MemoryStream();
using (var c1 = new SqlConnection(connstring1))
{
c1.Open();
// Serialize SQL results to a buffer
using (var command = new SqlCommand("SELECT * FROM products", c1))
using (var reader = command.ExecuteReader())
DataSerializer.Serialize(buffer, reader);
// Read them back
buffer.Seek(0, SeekOrigin.Begin);
using (var reader = DataSerializer.Deserialize(buffer))
{
while (reader.Read())
{
Console.WriteLine(reader["ProductName"]);
}
}
}
}
вы должны установить NuGet пакет:
Install-Package protobuf-net-data
Как может Я собираюсь передать результаты моего запроса к базе данных другому клиенту, а затем привязать результаты к виду сетки на стороне клиента? – Matthew
Вы можете передать DataTable и установить его как GridView.DataSource. Затем просто вызовите GridView.DataBind() –