SQL语句与常见错误

SQL语句
444
0
0
2022-08-04
标签   SQL语句

开发实践:多条更新的SQL语句执行方法

//创建连接字符串

string conString ="Server=.;DataBase=StudentManageDB;Uid=sa;Pwd=passw0rd";

//创建连接对象
SqlConnection conn = new SqlConnection(conString);
//组合SQL语句
string sql1 = "insert into Students(StudentName,Gender,Birthday,StudentIdNo,";
sql1 += "Age,PhoneNumber,StudentAddress,ClassId)";
sql1 += " values('{0}','{1}','{2}',{3},{4},'{5}','{6}','{7}')";
sql1 += string.Format(sql1,"慢慢","男","1954-44-14",722722199402188989,21,"029-12345678","三三四四",2);
string sql2 = string.Format(sql1,"TT","男","1999-09-09",433455199909099999,16,"029-89898989","问问",3);
string sql3 = "update Students set StudentName='{0}' where StudentId={1}";
sql3 = string.Format(sql3,"LL",1000001);
//将不同的SQL语句使用分号连接在一起
string sql = sql1 + ";" + sql2 + ";" + sql3;//多条SQL语句之间用 “;”分隔
SqlCommand cmd = new SqlCommand(sql,conn);
coon.Open();
int result = cmd.ExecuteNonQuery();//执行操作
coon.Close();
if(result == 3)Show("操作成功!");
else Show("操作失败!");

问题引出

  • 在Students 表中添加一个新的学员对象,并返回新增学员的学号
  • 提示:学号是自动标识列,即插入新纪录以后返回该记录的标识

问题解决

  • 在insert 语句后面添加 select @@identity 查询
  • 执行 ExecuteScalar() 方法:同时执行insert 和 select

insert into Student(StudentName,Gender,Birthday,Age,StudentIdNo,PhoneNumber,StudentAddress,ClassId)

values('hetao','男','1994-03-04',22,393939393939383722,'029-66986986','西安市',3);

select @@IDENTITY

@@identity 是数据库中的一个全局变量,里面保存着最近一次生成的标识列的值

开发实践:插入一个学员对象并返回标识列

//创建连接对象

string connString = "Server=.;DataBase=StudentManageDB;Uid=sa;Pwd=passw0rd";
SqlConnection conn = new SqlConnection(connString);
//组合SQL语句
string sql = "insert into Students(StudentName,Gender,Birthday,Age,StudentIdNo,PhoneNumber,ClassId)";
sql += " values( '{0}','{1}','{2}',{3},'{4}','{5}',{6}); Select @@identity";
sql = string.Format(sql,"嗯嗯","男","1933-03-13",21,"45667755443355566","029-12345678",2);
//创建Command对象
SqlCommand cmd = new SqlCommand(sql,conn);
//打开连接执行非查询
conn.Open();
int result = Convert.ToInt32(cmd.ExecuteScalar()); //ExecuteScalar()方法执行后返回 Object 类型
//关闭连接
conn.Close();
Console.WriteLine("现在学员编号="+result);
Console.ReadLine();

常见错误

Q:数据库服务器无法连接问题

错误内容:“在与SQL Server 建立连接时出现与网络相关的或特定于实例的错误。”

解决办法:

1.检查SQLServer服务是否打开

2.检查连接字符串中的Server对应的服务器名称是否正确(注意默认实例,命名实例的名称)

3.如果是连接的局域网内其他的计算机,请检查防火墙是否有拦截,或者通过“计算机管理”

检查服务器是否允许外边连接(服务的TCP/IP协议)。

Q:数据库名称写错

错误内容:“无法打开登录所请求的数据库”StudentManageDB。登录失败。“

解决办法:

修改数据库名称

Q:服务器”登录账号“或者”登录密码“写错

错误内容:”用户‘sa’登录失败。“

解决办法:

修改登录账户名称,或者修改登录密码。

Q:连接字符串的关键字写错

错误内容:”不支持关键字‘sever’“

解决办法:

修改连接字符串中对应的关键字

Q:连接字符串将分号写错

错误内容:显示服务器无法连接错误内容

特别提示:如果写错“如果写错"全角”的分号,也出现上面的错误

解决办法:

关键字之间修改成英文半角分号

Q:SQL语句写错

错误内容:”‘ ’附近有语法错误。

解决办法:

在提示错误的附近仔细检查sql语句

提示:SQL语句的编写,必须全部使用英文半角,包括逗号,空格,字母,括号等

Q:类名称写错或者占位符格式有错误

错误内容:列名‘ ’无效

解决办法:

注意列的数据类型

列的拼写

Q:格式转换错误

错误内容:将字符串转换为smalldatetime数据类型时失败

解决办法:

查看数据库类型的书写方式

Q:占位符的填充不完整

错误内容:索引必须大于或等于零,且小于参数类表的大小

解决办法:

细心,按对应位置,类型书写

须知后事如何,请听下回分解.....