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 --删除数据库
建表语句
复制代码 代码如下: