c#程序连接sql server数据库
先操作后讲解个人理解方式
一、数据库内容:
假设sql server身份验证:账户:sa;密码:123456
数据库名:StudentStatusDB
表名:tbUserInfo
表内容:字段信息(UserId =>int ; UserName=>nvarchar(50) ; UserPassword=>nvarchar(50))
二、c#连接数据库连接代码
c#连接sql server需引入
using System.Data;
using System.Data.SqlClient;
#region 获取前端文本框输入的账户和密码(这里用到的是asp.net网站的web窗体)
string name = txtName.Text.Trim();
string pwd = txtPassword.Text.Trim();
#endregion
#region 1.用代码连接数据库
//第一种连接,sql server的Windows身份验证
//string ConStr = "server=.;database=StudentStatusDB;Trusted_Connection=SSPI";
//第二种连接,sql server身份验证
string ConStr = "server=.;database=StudentStatusDB;uid=sa;pwd=123456";
SqlConnection conn = new SqlConnection(ConStr);
conn.Open();
#endregion
#region 2.用代码执行sql字符串
#region 第一种sql语句创建
//第一种方法
//sql注入当输入框账户输入1' or 1=1 or Username='2 密码框输入1' or 1=1 or Username='2也能成功登陆
//string sql = "select count(*) from tbUserInfo where UserName='" + name + "' and UserPassword='" + pwd + "'";
#endregion
#region 第二种sql语句创建
//第二种方法
string sql = "select count(*) from tbUserInfo where aaa@qq.com and aaa@qq.com";
SqlParameter[] parameters = {
new SqlParameter("@name", SqlDbType.NVarChar, 50),
new SqlParameter("@pwd", SqlDbType.NVarChar, 50)};
#endregion
SqlCommand com = new SqlCommand(sql, conn);
#region 第二种sql语句的创建
com.Parameters.Add(parameters[0]).Value = name;
com.Parameters.Add(parameters[1]).Value = pwd;
#endregion
#endregion
try
{
#region 3.获取数据库执行后的数据
int a = (int)com.ExecuteScalar();
#endregion
if (a != 0)
{
Response.Write("<script>alert('连接成功!');</script>");
}
else
{
Response.Write("<script>alert('用户名或密码错误!');</script>");
}
}
catch (Exception)
{
Response.Write("<script>alert('发生错误!');</script>");
}
finally
{
conn.Close();
}
三、个人理解
c#连接数据库个人认为分三大步:1.用代码连接数据库;2.用代码执行sql字符串;3.用代码获取sql执行后的数据
理解:可以用sql server 图形界面来解释每句代码的意义
1.用代码连接数据库
string ConStr = "server=.;database=StudentStatusDB;uid=sa;pwd=123456";
server==>服务器名称;
database==>所要连接的数据库名称(或者说转到某个数据库环境下 如数据库sql server中的use StudentStatusDB);
uid==>登录名;
pwd==>密码;
SqlConnection conn = new SqlConnection(ConStr);
//c#中连接数据库所用的代码类
conn.Open();
//打开数据库
//两句代码就相当于sql server图形界面连接数据库中点击了的 连接 按钮
2.用代码连接执行sql语句
string sql = "select count(*) from tbUserInfo where UserName='" + name + "' and UserPassword='" + pwd + "'";
//类似sql server执行新建查询后写的sql查询语句
SqlCommand com = new SqlCommand(sql, conn);
//c#中执行sql语句所用到的代码类,但是并未真正去执行,程序用到时才会去执行
3.用代码获取sql执行后的数据
int a = (int)com.ExecuteScalar();
//获取sql语句执行后的结果
以上只是说明了我个人理解数据库与c#程序之间传递数据的方式,如想了解的更深刻可以了解SqlCommand与SqlDataAdapter
注:第二种方式的c#执行sql语句类似数据库执行sql server语句
exec sp_executesql N'select count(*) from tbUserInfo where aaa@qq.com and aaa@qq.com',N'@name nvarchar(50),@pwd nvarchar(50)',@name=N'admin',@pwd=N'admin'
对了咋们用完数据库都会关闭数据库,而c#中关闭数据库用
conn.Close();
不懂sql server图形界面的可以参考:https://blog.csdn.net/qq_39657909/article/details/80550612
版权声明:本博客为记录本人自学感悟,内容大多从网上学习与整理所得,若侵权请告知!
https://mp.csdn.net/postedit/80365677
上一篇: 如何高效优化PHP代码解析损耗
下一篇: 数据库概述及MySQL的安装配置