在C#中如何对SQL Server数据库进行多表查询的结果显示在窗体上
多表关联查询与单边查询,对前台来说,都只是一个数据集(DataSet)
连接字符串的写法:
string connectString = "Data Source=.;Initial Catalog=Student;Integrated Security=True";
SqlConnection对象:
SqlConnection sqlCnt = new SqlConnection(connectString);
sqlCnt.Open();sqlCnt.Close();命名空间:System.Data.SqlClient.SqlConnection;
返回数据库连接对象,参数字符串。实例化“连接对象”,并打开连接
使用完成后,需要关闭“连接对象”
SqlCommand command = new SqlCommand();
command.Connection = sqlCnt; // 绑定SqlConnection对象实例化一个SqlCommand对象
执行SQLSqlCommand cmd = conn.CreateCommand(); //创建SqlCommand对象
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select * from products = @ID"; //sql语句 可以单表也可以多表关联,cmd.Parameters.Add("@ID", SqlDbType.Int);
cmd.Parameters["@ID"].Value = 1; //给参数sql语句的参数赋值SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "存储过程名";
private DataSet LinkDB(string database, string sqlobj)
{
try
{
string constr = "Data Source = ibmser;Database = MasterPDM; User ID =sa; PWD =";
SqlConnection con = new SqlConnection(constr);
con.Open();
string sqlstr = sqlobj;
SqlDataAdapter sqldataadapter = new SqlDataAdapter(sqlstr, con);
DataSet ds = new DataSet();
sqldataadapter.Fill(ds);
con.Close();
return ds;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
return null;
}
}
把上面的代码粘贴进去,把数据库连接字符串改成自己的,然后在BUTTON等控件上写这样的代码 StringBuilder sqlstr = new StringBuilder();
sqlstr.Append("楼主的查询语句'"+this.textBox1.Text+"' ");
ds = this.LinkDB(this.dataGridView1.Text, sqlstr.ToString());
this.dataGridView1.DataSource = ds.Tables[0];
我是直接把我的代码复制过来了,楼主自己参照着改一下就行了。楼主自己分析一下吧。
谢谢了 你的提示挺不错的 能多介绍下视图吗?
视图就是一张虚拟的表 实际是不存在的 但是他可以把你想要的数据查询出来放到一张表里去