怎么显示数据库视图 我在数据库中创建了一个视图来显示两个表中的部分关联数据,将此视图保存为TView,我想在C#程序中将此视图直接显示出来,但在网上查了下用法,都是通过select语句,然后用DataTable,DataViw来显示,这种的话直接写select语句然后再显示就可以了,还用视图干什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你不用视图的话,表关系、显示的表字段,select就都得写在代码中。当你的表结构发生变化时,你就得修改代码重新编译。使用视图的话,表关系就在视图中。仍你视图再怎么变,只要视图名不变,都不需要去修改代码。 已经显示出来了,只是这种我就不明白那数据库中创建的那个视图和程序中创建的那个视图有什么联系?只是select语句一样? string strCon = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DbTest.mdf;Integrated Security=True;User Instance=True"; SqlConnection con = new SqlConnection(strCon); con.Open(); string strSql = @"SELECT dbo.TUser.name AS 姓名, dbo.TUser.age AS 年龄, dbo.TLogin.loginpwd AS 密码FROM dbo.TLogin INNER JOIN dbo.TUser ON dbo.TLogin.loginname = dbo.TUser.name"; SqlDataAdapter da = new SqlDataAdapter(strSql, con); DataSet ds = new DataSet(); da.Fill(ds, "TView"); DataTable dt = ds.Tables["TView"]; DataView dv = new DataView(dt); foreach (DataRowView drv in dv) { string strdv = null; for (int i = 0; i < dv.Table.Columns.Count; i++) { strdv += dv.Table.Columns[i].ColumnName + ": " + drv[i].ToString() + "\r\n"; } MessageBox.Show(strdv); } con.Close(); }我在数据库中创建了一个视图TView,其select语句为:SELECT dbo.TUser.name AS 姓名, dbo.TUser.age AS 年龄, dbo.TLogin.loginpwd AS 密码FROM dbo.TLogin INNER JOIN dbo.TUser ON dbo.TLogin.loginname = dbo.TUser.name既然不能直接显示这个TView里面的内容,那和我直接在代码里面写select语句有何差别,搞不懂这个关系,还望高手指点. 你要明白你创建视图的目的,要是简单的一表,两表查询的话还真显示不出视图的作用,但是你要多表查询的话 你还用select 多表吗???? 你直接select *from view就行了,这不是简单了吗?? 好好的用下就知道了 感谢,搞了半天是直接select *from view,真是恍然大悟啊...tks结帖给分 我长久以来想问个问题,但问了怕很美面子 如何用反射动态绑定事件方法 请问在Windows应用程序中如何去访问已知站点? formview中2级联动的问题,报“没有采用0个参数的重载”错误 如何实现把双击 listview 调应用程序的事件,动作做在listview具体显示的数据项上... 写了一个SOCKET服务器,请高手请点一下 WPF,数据验证 各位老大:怎样创建web控件类库? 关于Process.GetProcesses()的问题!!!! 如何在C#应用程序下控制系统音量?来答啊,正确马上多多给分。 C#窗体ComBox使用 请问 C#可以获取到 打印机走纸器的事件驱动吗?
使用视图的话,表关系就在视图中。仍你视图再怎么变,只要视图名不变,都不需要去修改代码。
string strCon = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DbTest.mdf;Integrated Security=True;User Instance=True";
SqlConnection con = new SqlConnection(strCon);
con.Open();
string strSql = @"SELECT dbo.TUser.name AS 姓名, dbo.TUser.age AS 年龄,
dbo.TLogin.loginpwd AS 密码
FROM dbo.TLogin INNER JOIN
dbo.TUser ON dbo.TLogin.loginname = dbo.TUser.name";
SqlDataAdapter da = new SqlDataAdapter(strSql, con);
DataSet ds = new DataSet();
da.Fill(ds, "TView");
DataTable dt = ds.Tables["TView"];
DataView dv = new DataView(dt);
foreach (DataRowView drv in dv)
{
string strdv = null;
for (int i = 0; i < dv.Table.Columns.Count; i++)
{
strdv += dv.Table.Columns[i].ColumnName + ": " + drv[i].ToString() + "\r\n";
}
MessageBox.Show(strdv);
}
con.Close();
}我在数据库中创建了一个视图TView,其select语句为:SELECT dbo.TUser.name AS 姓名, dbo.TUser.age AS 年龄,
dbo.TLogin.loginpwd AS 密码
FROM dbo.TLogin INNER JOIN
dbo.TUser ON dbo.TLogin.loginname = dbo.TUser.name
既然不能直接显示这个TView里面的内容,那和我直接在代码里面写select语句有何差别,搞不懂这个关系,还望高手指点.
结帖给分