菜鸟级asp.net 与ms sql server数据库打交道的简单总结
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数据库打交道的简单总结的更多相关文章
- (火炬)MS SQL Server数据库案例教程
(火炬)MS SQL Server数据库案例教程 创建数据库: CREATE DATABASE TDB //数据库名称 ON ( NAME=TDB_dat,//逻辑文件名 在创建数据库完成之后语句中引 ...
- 在易语言中调用MS SQL SERVER数据库存储过程方法总结
Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...
- MS SQL Server数据库修复/MDF数据文件数据恢复/MDF质疑/mdf无法附加
微软的SQL Server 数据库最常用的有两种类型的文件: 1.主要数据文件,文件后缀一般是.MDF: 2.事务日志文件,文件后缀一般是.LDF. 用户数据表.视图.存储过程等等数据,都是存放在MD ...
- MS SQL Server数据库在线管理工具
MS SQL Server数据库以其优异的性能,被广泛使用,特别是政务,医疗行业.但是远程维护挺不方便的,目前有一款基于WEB的工具TreeSoft数据库管理系统. 免安装,直接解压就可以用了.直接通 ...
- MS SQL Server数据库查询优化技巧
[摘 要]本文主要是对MS SQL Server数据库查询优化技巧进行了说明和分析,对索引使用.查询条件以及数据表的设计等进行了阐述.中国论文网 http://www.xzbu.com/2/view- ...
- MS SQL Server 数据库分离-SQL语句
前言 今天在在清理数据库,是MS SQL Server,其中用到分离数据库文件.在这过程中,出现了一个小小的问题:误将数据库日志文件删除了,然后数据就打不开了,除了脱机,其他操作都报错. 数据库分离 ...
- MS Sql Server 数据库或表修复(DBCC CHECKDB)
MS Sql Server 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令. 1. DBCC CHECKDB 重启服务器后,在没有进行任何操作的情况下,在SQL ...
- ASP.NET Excel导入Sql Server数据库(转)
先看界面图 实现的基本思想: 1,先使用FileUpload控件fuload将Excel文件上传到服务器上得某一个文件夹. 2,使用OleDb将已经上传到服务器上的Excel文件读出来,这里将Exce ...
- 提权案例(一)渗透某asp.net网站通过sql server数据库public 提权 思路分享
先罗列出sql server 角色用户的权限 按照从最低级别角色(bulkadmin)到最高级别角色(sysadmin)的顺序进行描述:1.bulkadmin:这个角色可以运行BULK INSERT语 ...
随机推荐
- day03 Java基础
1.面试题 (1)short s=1;s=s+1; (2)short s=1;s+=1; 上面两行代码有没有问题,如果有,哪里有问题? 答:第一个有问题,s+1是int类型的值,赋值给short的s, ...
- java_数组作缓存池的不可变类实例
package ming; public class CacheImmutale { private static int MAX_SIZE = 10; private static CacheImm ...
- B. Fox And Two Dots
B. Fox And Two Dots time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- Count Color
Description Chosen Problem Solving and Program design as an optional course, you are required to sol ...
- 转摘:常用ubuntu 关机,重启,注销命令
1.关机命令 shutdown 好像ubuntu的终端中默认的是当前用户的命令,只是普通用户,因此在终端器中可以使用sudo -sh 转换到管理员root用户下执行命令. 1).shutdown –h ...
- iOS之与JS交互通信
随着苹果SDK的不断升级,越来越多的新特性增加了进来,本文主要讲述从iOS6至今,Native与JavaScript的交互方法 一.UIWebview && iframe && ...
- SQL Server:替换文本中的回车和换行符
--替换回车符 update master_locationSET street_number = REPLACE(street_number, CHAR(13), '') --替换换行符 updat ...
- 使用Hibernate框架技术时,对项目进行的配置
1.在需要使用Hibernate框架技术的项目上单击鼠标右键,在弹出的菜单中选择MyEclipse-->Add Hibernate Capabilities,打开Add Hibernate Ca ...
- Adobe Edge Animate –Edge Commons强势来袭,Edge团队开发成为现实
Adobe Edge Animate –Edge Commons强势来袭,Edge团队开发成为现实 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权和原文地址. Edge ...
- VB.net 字符串 分割 及 重新倒序组装
''' <summary> ''' split with ">>>>" , and inverted order ''' </summar ...