如何解决SQL错误:18456
右键数据库->属性,安全性选择以下模式;然后重启数据库引擎
解决错误18470->启用sa账户(状态选择启用)
忘记sa密码的解决方式
先勾掉“强制实施密码策略”,修改密码后再勾选上即可
连接SQL数据库
首先添加引用
using System.Data.SqlClient;
构建链接字符串
string connString = "Server=服务器名称;DataBase=数据库名;Uid=sa;Pwd=密码";
新建连接对象
SqlConnection conn = new SqlConnection(connString);
增
//构建SQL命令
string sql = "insert into Goods(GName,GCost,GDate,GCreater,GLocation)";
sql += "values('{0}','{1}','{2}','{3}','{4}')";
sql = string.Format(sql, "Surface Book2", 12999, "2019-03-26", "MS Inc", 1);
SqlCommand cmd = new SqlCommand(sql, conn);
//连接+执行
conn.Open();
int result = cmd.ExecuteNonQuery();
conn.Close();
删
//构建SQL命令
string sql = "delete from Goods where GUid="+10004;
SqlCommand cmd = new SqlCommand(sql, conn);
//连接+执行
conn.Open();
int result = cmd.ExecuteNonQuery();
conn.Close();
改
//构建SQL命令
string sql = "update Goods set GCost='{0}' where GName='{1}'";
sql = string.Format(sql, 17999, "Surface Book2");
SqlCommand cmd = new SqlCommand(sql, conn);
//连接+执行
conn.Open();
int result = cmd.ExecuteNonQuery();
conn.Close();
同时递交多个SQL语句只需要将其用分号隔开即可 sql1+";"+sql2+";"+sql3
获取标识列
在SQL语句后面加一个select @@IDENTITY
//构建SQL命令
string sql = "insert into Goods(GName,GCost,GDate,GCreater,GLocation)";
sql += "values('{0}','{1}','{2}','{3}','{4}');select @@IDENTITY";
sql = string.Format(sql, "Surface Go", 3299, "2019-03-26", "MS Inc", 2);
SqlCommand cmd = new SqlCommand(sql, conn);
//连接+执行
conn.Open();
object result = cmd.ExecuteScalar();//修改执行函数
int ID = Convert.ToInt32(result);//转换数据类型
conn.Close();
查-单一结构(某个数据)
//构建SQL命令
string sql = "select Count(*) from Goods";
SqlCommand cmd = new SqlCommand(sql, conn);
//连接+执行
conn.Open();
object result = cmd.ExecuteScalar();//修改执行函数
int ID = Convert.ToInt32(result);//转换数据类型
conn.Close();
查-具体对象
//构建SQL命令
string sql = "select * from Goods";//可以附加where条件加以限制
SqlCommand cmd = new SqlCommand(sql, conn);
//连接+执行
conn.Open();
SqlDataReader obj = cmd.ExecuteReader();//查询
while (obj.Read())
{
data=obj["GName"].ToString() + " " + obj["GCost"].ToString();
}
obj.Close();//关读取器
conn.Close();
获取多个结果集
if (obj.NextResult())//判断是否有下一个结果集
while (obj.Read())
{
data = obj["GName"].ToString() + " " + obj["GCost"].ToString();
}