当前位置:编程学习 > C#/ASP.NET >>

asp.net中ADO SQL数据库 笔记汇总 持续更新中

答案:ADO连接数据库
1)获取连接字符串
方式一: 记住连接字符串
connectionString=" Integrated Security=True; server=. ; database=DBName"
方式二:在visual studio中,点击”视图”à服务资源管理器à右击左侧的”数据连接”,选择”添加连接”à服务名: 为一个点.选择数据库名,然后点击”高级”,然后复制底部的连接字符串
2)在web.config中配置连接字符串
复制代码 代码如下:

<connectionStrings>
<addname="SQLconnectionStr"connectionString="Data Source=.;Initial Catalog=NetShopDB;Integrated Security=True"providerName="System.Data.SqlClient"/>
</connectionStrings>

3)在DAL层新建SqlConnection类,包含静态方法:
记得先添加Configuration引用和 using System.Configuration;命名空间
复制代码 代码如下:

public static string getConnectionStr()
{
return ConfigurationManager.ConnectionStrings["SQLconnectionStr"].ToString();
}

4)在DAL层其他类中调用getConnectionStr()静态方法
复制代码 代码如下:

string conStr= SqlConnection.getConnectionStr();


DAL层执行SQL语句的方法

ADO操作SQL语句:方式一
复制代码 代码如下:

public List<student> getData1(string myid, string myname)
{
//这里用using灵活方便,用完con不需手动关闭,会自动关闭当前连接
using(SqlConnection con=new SqlConnection(conStr) )
{
//打开连接
con.Open();
string cmdStr = "select * from ns_user where userID=@myid and userName=@myname";
SqlCommand cmd = new SqlCommand(cmdStr,con);
//这里用参数序列化防止注入式攻击
cmd.Parameters.Add(new SqlParameter("@myid", myid));
cmd.Parameters.Add(new SqlParameter("@myname", myname));
//执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行
//object myResult = cmd.ExecuteScalar();
// 对连接执行 Transact-SQL 语句并返回受影响的行数。(负责执行语句, 例如增insert,删delete,改update)
//int ResultRowCount = cmd.ExecuteNonQuery();
SqlDataReader sdr = cmd.ExecuteReader();
List<student> ls = new List<student>();
while (sdr.Read())
{
student s = new student();
s.Sid = sdr["sid"].ToString();
s.Sname = sdr["sname"].ToString();
ls.Add(s);
}
return ls;
}
}
Dataset(记得)
#region 获取教师的详细信息
public DataSet GetTeacherInfo()
{
using (SqlConnection conn = new SqlConnection(dbapp))
{
SqlDataAdapter sda = new SqlDataAdapter("select * from table1 ", conn);
DataSet ds = new DataSet(); //定义一个表的集合
sda.Fill(ds, "teacher");
return ds;
}

}
#endregion


ADO操作存储过程:
复制代码 代码如下:

#region
public int UserCheck(string userID,string userName)
{
using(SqlConnection con=new SqlConnection (conStr))
{
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "sp_MYLogin"; //sp_MYLogin是存储过程名称
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = con;

//为存储过程赋值
//赋值方式一(赋第一个值括号里面的 "@name"必须和存储过程里的"@name"一模一样)
cmd.Parameters.Add(new SqlParameter("@userID", userID));

//赋值方式二(赋第二个值)
SqlParameter pwd = new SqlParameter("@pwd", SqlDbType.NVarChar, 50);
pwd.Value = userName;
pwd.Direction = ParameterDirection.Input;
cmd.Parameters.Add(pwd);
//定义一个变量来接受存储过程的返回值
SqlParameter result = new SqlParameter("@return", SqlDbType.Int);
result.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(result);

cmd.ExecuteNonQuery(); //执行存储过程

//取得SQL变量@result中存放的存储过程的返回值
int num = Convert.ToInt32(cmd.Parameters["@return"].Value); //Parameters是一个集合["@return"]就是他的索引
return num;
}
}
#endregion

错误日志
复制代码 代码如下:

catch (Exception ex)
{ //错误日志
error.ErrorWrite("UserInsert", ex.Message, DateTime.Now.ToString());
return null;
}


数据库技术
建修库表
建库语句
复制代码 代码如下:

create database student --创建的数据库名称
on primary ---指定数据文件的各个参数
(
name='studnet3_data', --所有的字符串都以' 间隔
filename='E:\lx\student4_data.mdf', --文件名包含路径和名字.扩展名
size=3MB, ----默认大小,如果不写大小,则默认是MB
maxsize=100MB, ----最大容量
filegrowth=1MB ---自动增长量/扩容,如果为,则不自动扩容
)

log on -----日志文件的各个参数
(
name='student5_log',
filename='E:\lx\student4_data.ldf',
size=1MB,
maxsize=10MB,
filegrowth=10% --10%是最大容量的%)
)

sp_helpdb student ---查询数据库名称
sp_renamedb student,stu --重命名数据库
drop database student --删除数据库


建表语句
复制代码 代码如下:

drop table person --删除表
create table person --创建表
(
---注意:下面是属性(字段名称)在前,数据类型在后
ID int primary key identity(2,1) not null, -- primary key是设置主键,保证该列值唯一且不为空,identity(2,1)起始值是,步长为
Name nvarchar(10) not null, ---not null是指不能为空
Sex bit not null, --bit是bool类型
age int default 18 , -- default 18是指自动取默认值
scroe decimal(4,1) check(score<=100) --4指小数点前后加起来总共位,代表小数点后位数 check是检查限制约束
cardid int unique --unique 指唯一键,在表中有多列数据需要保证唯一时除了主键以外的列需要设置为唯一列
)

对表的操作
修改表结构,添加删除约束

alter table person --修改表结构
--add NameID int --添加属性\字段NameID列,添加列
--drop column NameID --删除列

--alter column ID int not null ---添加字段不为空
--add constraint 约束名(pk_表名_列名| pk_列名)
--add constraint pk_ID primary key(ID) --修改表时添加主键约束
--add constraint ck_score check(score<150) --修改表时添加检查约束
--add constraint uk_cardi unique(cardid) --修改表时添加唯一键约束
--add constraint df_age default 19 for age --修改表时添加默认约束
--drop constraint CK__person__score__15502E78 --删除约束(格式:drop constraint 约束名)
修改表信息,增(insert) 删(delete) 改(update) 查(select)
--添加记录<insert 表名values(参数)> <1>字符串或日期类型加'' <2>bit用或 <2>自动增长列不需要添加值
insert person values(12,'wang',0,23,32,34)
insert person(sex,age,cardid) values(0,23,32) --有选择性的插入数据((sex,age,cardid) )指要手动添加的数据

--修改记录 <update 表名set 修改对象where 条件> <1>修改多个字段,中间以逗号间隔
update person set age=19,sex=0 where ID=1
update person set age=19,age=12 where ID=2 ---<1>
update person set age=19+1 where ID=2---修改信息时进行算术运算
update person set age=19+1 --如果不写where,则对所有数据进行修改

update person set age=SUBSTRING(age,1,1) where ID=1 --substring 是字符的截取

--删除记录< delete 表名where 条件> (如果不加where则删除所有记录)

上一个:asp.net多图片上传实现程序代码
下一个:asp.net点击 查看更多 实现无刷新加载的实现代码

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,