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>

Web.config

其次是自己写的最简单的连接数据库的类:

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;
}
}
}

DBLink

然后是一个简单的绑定控件,其实这是从数据库里面获得了一个表,放到了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[].Rows[]["unum"])?:Convert.ToInt32(ds.Tables[].Rows[]["unum"]);
mStuSum = Convert.IsDBNull(ds.Tables[].Rows[]["mnum"]) ? : Convert.ToInt32(ds.Tables[].Rows[]["mnum"]);
dStuSum = Convert.IsDBNull(ds.Tables[].Rows[]["dnum"]) ? : Convert.ToInt32(ds.Tables[].Rows[]["dnum"]);
mdStuSum = mStuSum + dStuSum;
lblUnderStuSum.Text = underStuSum.ToString();
lblMDStuSum.Text = mdStuSum.ToString(); /*获得的第二个表*/
singleRecruitsSum = Convert.IsDBNull(ds.Tables[].Rows[]["singlecompanynum"]) ? : Convert.ToInt32(ds.Tables[].Rows[]["singlecompanynum"]);
lblSingleRecruitsSum.Text = singleRecruitsSum.ToString(); /*获得的第三个表*/
int u = Convert.IsDBNull(ds.Tables[].Rows[]["unum"]) ? : Convert.ToInt32(ds.Tables[].Rows[]["unum"]);
int m = Convert.IsDBNull(ds.Tables[].Rows[]["mnum"]) ? : Convert.ToInt32(ds.Tables[].Rows[]["mnum"]);
int d = Convert.IsDBNull(ds.Tables[].Rows[]["dnum"]) ? : Convert.ToInt32(ds.Tables[].Rows[]["dnum"]);
singleProvidesSum = u + m + d;
lblSingleProvidesSum.Text = singleProvidesSum.ToString(); /*获得的第四个表*/
groupSum = Convert.IsDBNull(ds.Tables[].Rows[]["groupsum"]) ? : Convert.ToInt32(ds.Tables[].Rows[]["groupsum"]);
lblGroupSum.Text = groupSum.ToString(); /*获得的第五个表*/
groupCompanysSum = Convert.IsDBNull(ds.Tables[].Rows[]["groupcompanysum"]) ? : Convert.ToInt32(ds.Tables[].Rows[]["groupcompanysum"]);
lblGroupCompanysSum.Text = groupCompanysSum.ToString(); /*获得的第六个表*/
int gu = Convert.IsDBNull(ds.Tables[].Rows[]["unum"]) ? : Convert.ToInt32(ds.Tables[].Rows[]["unum"]);
int gm = Convert.IsDBNull(ds.Tables[].Rows[]["mnum"]) ? : Convert.ToInt32(ds.Tables[].Rows[]["mnum"]);
int gd = Convert.IsDBNull(ds.Tables[].Rows[]["dnum"]) ? : Convert.ToInt32(ds.Tables[].Rows[]["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 != )
ArticleType.Items.Clear();
SqlDataReader sdr = cmd.ExecuteReader();
ArticleType.DataSource = sdr;
ArticleType.DataTextField = "TypeName";
ArticleType.DataValueField = "TypeID";
ArticleType.DataBind();
conn.Close();
ArticleType.Items.Insert(, "请选择文章类型...");

最新文章

  1. 错误400-The request sent by the client was syntactically incorrect
  2. 237. Delete Node in a Linked List
  3. 统计和分析系统性能【IO CPU 内存】的工具集合
  4. datagrid 禁止点击行
  5. setInterval和setTimeout
  6. Extjs String转Json
  7. java笔记--关于克隆技术
  8. solr5.5教程-tomcat布署(2)
  9. js简单实现删除记录时的提示效果
  10. 腾讯QQ、新浪微博等知名社交网络图标素材
  11. Segments POJ 3304 直线与线段是否相交
  12. Spring-mvc介绍
  13. 上传图片并生成相关缩略图-PHP
  14. Yum database disk image is malformed
  15. ip001
  16. Google Optimization Tools实现加工车间任务规划【Python版】
  17. docker管理工具protainer
  18. redis 部署相关
  19. ActionBarSherlock(一)在Eclipse中如何引入ActionBarSherlock和它的例子?
  20. EXCEL 处理重复数据名字后面追加值

热门文章

  1. 【android】在eclipse中查看genymotion模拟器的sd卡文件夹
  2. HDU 2037 今年暑假不AC (贪心)
  3. 一元线性回归模型与最小二乘法及其C++实现
  4. B - Broken Keyboard (a.k.a. Beiju Text)
  5. Javascript与Ajax
  6. oracle pl/sql简介、块、过程
  7. Linux下安装配置Node及memcached
  8. javaweb学习总结三(枚举)
  9. 【转】移动互联网应用测试成长技能树V1.0
  10. asp.net 文件压缩zip下载