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 UserName=@name and UserPassword=@pwd";
            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#程序之间传递数据的方式,如想了解的更深刻可以了解SqlCommandSqlDataAdapter

注:第二种方式的c#执行sql语句类似数据库执行sql server语句

exec sp_executesql N'select count(*) from tbUserInfo where UserName=@name and UserPassword=@pwd',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



猜你喜欢

转载自blog.csdn.net/qq_39657909/article/details/80614520