该Demo是实现WCF在服务端实现数据的查询,将查询数据穿到客户端,在客户端展示:(DataGridView和ListView控件进行展示)
1)从数据库中查询数据并放到DataSet中
public DataSet QuerySql()
{
try
{
OpenSql();
string strSql = "SELECT prop_name,prop_value From t_property where file_id = 1000000007";
DataSet ds = new DataSet();
MySqlDataAdapter sda = new MySqlDataAdapter(strSql, sqlConn);
sda.Fill(ds);
return ds;
}
catch (Exception exc)
{
throw exc;
}
finally
{
CloseSql();
}
}
2)客户端设置
DataGridView设置:主要是设置DataPropertyName跟查询到的数据字段名称关联
ListView设置:表头显示,需要注意两个地方(添加列,设置控件属性View为Details)
3)客户端展示主要代码:
public partial class Form1 : Form
{
ChannelFactory factory;
IDatabaseService manager;
string baseAddress = “net.tcp://localhost:8733/”;
public Form1()
{
InitializeComponent();
NetTcpBinding binding = new NetTcpBinding();
binding.Security.Mode = SecurityMode.None;
binding.TransferMode = TransferMode.Buffered;
binding.MaxReceivedMessageSize = int.MaxValue;
factory = new ChannelFactory<IDatabaseService>(binding,new EndpointAddress(baseAddress));
manager = factory.CreateChannel();
DataSet ds = manager.QuerySql();
//初始化DataGridView
dataGridView1.DataSource = ds.Tables[0];
//初始化ListView
int rowCount = ds.Tables[0].Rows.Count;
int columnCount = ds.Tables[0].Columns.Count;
listView1.BeginUpdate();
listView1.Items.Clear();
string[] lvItem = new string[columnCount];
for (int i= 0; i<rowCount; i++)
{
for (int j=0; j<columnCount; j++)
{
lvItem[j] = ds.Tables[0].Rows[i][j].ToString();
}
ListViewItem lvi = new ListViewItem(lvItem);
listView1.Items.Add(lvi);
}
listView1.EndUpdate();
}
}
展示效果:
注:ListView中两个常用属性:
(1)FullRowSelect:设置是否行选择模式。(默认为false) 提示:只有在Details视图该属性才有意义。
(2) GridLines:设置行和列之间是否显示网格线。(默认为false)提示:只有在Details视图该属性才有意义。
完整代码:https://download.csdn.net/download/qq_43026206/12676248