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(, "请选择文章类型...");

菜鸟级asp.net 与ms sql server数据库打交道的简单总结的更多相关文章

  1. (火炬)MS SQL Server数据库案例教程

    (火炬)MS SQL Server数据库案例教程 创建数据库: CREATE DATABASE TDB //数据库名称 ON ( NAME=TDB_dat,//逻辑文件名 在创建数据库完成之后语句中引 ...

  2. 在易语言中调用MS SQL SERVER数据库存储过程方法总结

    Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...

  3. MS SQL Server数据库修复/MDF数据文件数据恢复/MDF质疑/mdf无法附加

    微软的SQL Server 数据库最常用的有两种类型的文件: 1.主要数据文件,文件后缀一般是.MDF: 2.事务日志文件,文件后缀一般是.LDF. 用户数据表.视图.存储过程等等数据,都是存放在MD ...

  4. MS SQL Server数据库在线管理工具

    MS SQL Server数据库以其优异的性能,被广泛使用,特别是政务,医疗行业.但是远程维护挺不方便的,目前有一款基于WEB的工具TreeSoft数据库管理系统. 免安装,直接解压就可以用了.直接通 ...

  5. MS SQL Server数据库查询优化技巧

    [摘 要]本文主要是对MS SQL Server数据库查询优化技巧进行了说明和分析,对索引使用.查询条件以及数据表的设计等进行了阐述.中国论文网 http://www.xzbu.com/2/view- ...

  6. MS SQL Server 数据库分离-SQL语句

    前言 今天在在清理数据库,是MS SQL Server,其中用到分离数据库文件.在这过程中,出现了一个小小的问题:误将数据库日志文件删除了,然后数据就打不开了,除了脱机,其他操作都报错. 数据库分离 ...

  7. MS Sql Server 数据库或表修复(DBCC CHECKDB)

    MS Sql Server 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令.  1. DBCC CHECKDB  重启服务器后,在没有进行任何操作的情况下,在SQL ...

  8. ASP.NET Excel导入Sql Server数据库(转)

    先看界面图 实现的基本思想: 1,先使用FileUpload控件fuload将Excel文件上传到服务器上得某一个文件夹. 2,使用OleDb将已经上传到服务器上的Excel文件读出来,这里将Exce ...

  9. 提权案例(一)渗透某asp.net网站通过sql server数据库public 提权 思路分享

    先罗列出sql server 角色用户的权限 按照从最低级别角色(bulkadmin)到最高级别角色(sysadmin)的顺序进行描述:1.bulkadmin:这个角色可以运行BULK INSERT语 ...

随机推荐

  1. 解决MySQL不允许从远程访问的方法

    mysql -u root -p mysql>use mysql; mysql>select 'host' from user where user='root'; mysql>up ...

  2. cookie转CookieCollection

    CookieCollection cookiesResponse = new CookieCollection(); if (response != null) { foreach (string c ...

  3. java 对象序列化

    java 对象序列化 package org.rui.io.serializable; import java.io.ByteArrayInputStream; import java.io.Byte ...

  4. Fedora 20 安装后的一些事情

    1.关闭selinux 可以在软件中,找到selinux管理工具:system-config-selinux.py 2.安装源 可以通过# ls -l /etc/yum.repos.d 查看现有的安装 ...

  5. php上传常见文件类型对应的$_FILES["file"]["type"](转)

    php上传常见文件类型对应的$_FILES["file"]["type"] from:http://hi.baidu.com/7book/item/374971 ...

  6. 纯windows下制作变色龙引导安装U盘教程

    原创教程:纯windows下制作变色龙引导安装U盘教程 支持Mavericks和Yosemite 支持白苹果 目标:windows下制作带 Chamelon变色龙引导的黑苹果安装U盘,支持PC机引导安 ...

  7. IE7下position:relative的问题

    如果在IE7中使用position:relative属性,需要在该元素的容器上,同时给予position:relative属性.

  8. 沈逸老师ubuntu速学笔记(2)-- ubuntu16.04下 apache2.4和php7结合编译安装,并安裝PDOmysql扩展

    1.编译安装apache2.4.20 第一步: ./configure --prefix=/usr/local/httpd --enable-so 第二步: make 第三步: sudo make i ...

  9. wpf 父控件透明子控件不透明

    在wpf开发中遇到子控件会继承父类控件属性的问题, 例如: <StackPanel Orientation="Horizontal" Grid.Row="1&quo ...

  10. CentOS(七)--Linux文件类型及目录配置

    这篇随笔将会对Linux系统的文件类型以及Linux的目录结构进行详细补充(linux中目录管理和权限非常重要,特别是在linux安装数据库类软件). 一.Linux更改文件权限的两种方式 在之前的一 ...