菜鸟级asp.net 与ms sql server数据库打交道的简…
2018-06-18 03:43:29来源:未知 阅读 ()
using System.Data.SqlClient;
using System.Data;
上面是必须的
下面说的都是用存储过程
首先是webconfig里面的连接字符串:
<connectionStrings> <add name="StatisticsConnectionString" connectionString="data source=.;Initial Catalog=Statistics;Integrated Security=true;" providerName="System.Data.SqlClient" /> </connectionStrings>
其次是自己写的最简单的连接数据库的类:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.Data.SqlClient; namespace Mystatistics { /// <summary> /// 连接数据库的类 /// </summary> public class DBLink { public static SqlConnection GetConnection() { SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["StatisticsConnectionString"].ConnectionString); return conn; } } }
然后是一个简单的绑定控件,其实这是从数据库里面获得了一个表,放到了datatable中
SqlConnection conn = DBLink.GetConnection(); //连接 conn.Open(); SqlCommand cmd = new SqlCommand(); //命令 cmd.Connection = conn; cmd.CommandType = CommandType.StoredProcedure; //指定命令类型是存储过程 cmd.CommandText = "procMajorsByinstituteIdSelect"; //存储过程名 cmd.Parameters.Add(new SqlParameter("@inInstituteId", instituteId)); //存储过程用到的参数,可以按这个一直添加 SqlDataAdapter sda = new SqlDataAdapter(cmd); //相当于内存里的datatable和从数据库获得的结果之间的桥梁 DataTable dt = new DataTable(); //这个表装从数据库获得的数据,相当于本机内存里面的一个表 sda.Fill(dt); //填充 /*从datatable绑定,并设置*/ ddlMajor.DataValueField = "majorId"; //值,这两个字符串来自数据库select语句 ddlMajor.DataTextField = "majorName"; //显示文字 ddlMajor.DataSource = dt; ddlMajor.DataBind(); //绑定控件 /*最后释放资源*/ dt.Dispose(); sda.Dispose(); cmd.Dispose(); //释放 conn.Close(); //关闭
下面是存储过程获得了多个表的处理,注意几点:1.dataset 2.dataset到datatable 3.datatable获得指定行列的值 4.select语句没有结果的处理
SqlConnection conn = DBLink.GetConnection(); conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "procGetMonthReport"; //存储过程名 cmd.Parameters.Add(new SqlParameter("@startTime", startTime)); cmd.Parameters.Add(new SqlParameter("@endTime", endTime)); SqlDataAdapter sda= new SqlDataAdapter(cmd); DataSet ds = new DataSet(); //这个cmd 获得的结果是多个表,用dataset装 sda.Fill(ds); /*处理获得的数据,注意若select没有结果但是想显示为0的强制转换的话会出现异常*/ /*获得的第一个表*/ underStuSum = Convert.IsDBNull(ds.Tables[0].Rows[0]["unum"])?0:Convert.ToInt32(ds.Tables[0].Rows[0]["unum"]); mStuSum = Convert.IsDBNull(ds.Tables[0].Rows[0]["mnum"]) ? 0 : Convert.ToInt32(ds.Tables[0].Rows[0]["mnum"]); dStuSum = Convert.IsDBNull(ds.Tables[0].Rows[0]["dnum"]) ? 0 : Convert.ToInt32(ds.Tables[0].Rows[0]["dnum"]); mdStuSum = mStuSum + dStuSum; lblUnderStuSum.Text = underStuSum.ToString(); lblMDStuSum.Text = mdStuSum.ToString(); /*获得的第二个表*/ singleRecruitsSum = Convert.IsDBNull(ds.Tables[1].Rows[0]["singlecompanynum"]) ? 0 : Convert.ToInt32(ds.Tables[1].Rows[0]["singlecompanynum"]); lblSingleRecruitsSum.Text = singleRecruitsSum.ToString(); /*获得的第三个表*/ int u = Convert.IsDBNull(ds.Tables[2].Rows[0]["unum"]) ? 0 : Convert.ToInt32(ds.Tables[2].Rows[0]["unum"]); int m = Convert.IsDBNull(ds.Tables[2].Rows[0]["mnum"]) ? 0 : Convert.ToInt32(ds.Tables[2].Rows[0]["mnum"]); int d = Convert.IsDBNull(ds.Tables[2].Rows[0]["dnum"]) ? 0 : Convert.ToInt32(ds.Tables[2].Rows[0]["dnum"]); singleProvidesSum = u + m + d; lblSingleProvidesSum.Text = singleProvidesSum.ToString(); /*获得的第四个表*/ groupSum = Convert.IsDBNull(ds.Tables[3].Rows[0]["groupsum"]) ? 0 : Convert.ToInt32(ds.Tables[3].Rows[0]["groupsum"]); lblGroupSum.Text = groupSum.ToString(); /*获得的第五个表*/ groupCompanysSum = Convert.IsDBNull(ds.Tables[4].Rows[0]["groupcompanysum"]) ? 0 : Convert.ToInt32(ds.Tables[4].Rows[0]["groupcompanysum"]); lblGroupCompanysSum.Text = groupCompanysSum.ToString(); /*获得的第六个表*/ int gu = Convert.IsDBNull(ds.Tables[5].Rows[0]["unum"]) ? 0 : Convert.ToInt32(ds.Tables[5].Rows[0]["unum"]); int gm = Convert.IsDBNull(ds.Tables[5].Rows[0]["mnum"]) ? 0 : Convert.ToInt32(ds.Tables[5].Rows[0]["mnum"]); int gd = Convert.IsDBNull(ds.Tables[5].Rows[0]["dnum"]) ? 0 : Convert.ToInt32(ds.Tables[5].Rows[0]["dnum"]); groupProvidesSum = gu + gm + gd; lblGroupProvidesSum.Text = groupProvidesSum.ToString(); ds.Dispose(); sda.Dispose(); cmd.Dispose(); conn.Close();
下面是没有用存储过程的:
SqlConnection conn = DBLink.GetConnection(); conn.Open(); SqlCommand cmd = new SqlCommand("select TypeID,TypeName from ArticleType", conn); if (ArticleType.Items.Count != 0) ArticleType.Items.Clear(); SqlDataReader sdr = cmd.ExecuteReader(); ArticleType.DataSource = sdr; ArticleType.DataTextField = "TypeName"; ArticleType.DataValueField = "TypeID"; ArticleType.DataBind(); conn.Close(); ArticleType.Items.Insert(0, "请选择文章类型...");
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:jQuery制作鼠标经过显示图片大图,生成图片tips效果
下一篇:生成验证码
- qt连接mysql报错:QSqlDatabase: QMYSQL driver not loaded 2020-02-29
- C++连接SQL 2019-11-21
- c++中如何判断sqlite表是否存在 2019-10-25
- mysql connector c++ 1.1 API初步体验 2019-09-23
- 了解CAdoSqlserver 2019-09-04
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash