求助 关于插入,修改 SQL server数据库的问题

问题描述

“System.Data.SqlClient.SqlException”类型的未经处理的异常出现在System.Data.dll中。其他信息:'8412541'附近有语法错误。

解决方案

解决方案二:
以下是我的代码
解决方案三:
privatevoidbuttonBorrow_Click(objectsender,EventArgse){stringstrconn=@"DataSource=.;InitialCatalog=D:数据库课设图书管理信息系统.MDF;IntegratedSecurity=True";DateTimenow=System.DateTime.Now;DateTimereturntime=now.AddMonths(2);//MessageBox.Show(now.ToString());SqlConnectionconn=newSqlConnection(strconn);stringIsBorrow="select能否借出from图书信息表where书籍条码='"+this.textBox条码.Text+"'and能否借出='是'";SqlCommandcomd=newSqlCommand(IsBorrow,conn);conn.Open();SqlDataReaderdr=comd.ExecuteReader();dr.Read();//判段此书是否可借if(dr.HasRows==true){dr.Close();stringname=@"select书名from图书信息表where书籍条码='"+this.textBox条码.Text+"'";stringsqlStr=@"insertinto借阅一览表([书籍条码],[书名],[读者编号],[借书日期],[还书日期])values('"+textBox条码+"','"+name+"','"+textBox读者编号+"','"+now+"','"+returntime+"')";SqlCommandcmd=newSqlCommand(sqlStr,conn);intcount=cmd.ExecuteNonQuery();if(count>0){MessageBox.Show("插入成功");}else{MessageBox.Show("插入失败");}//此书借走后则将此书设置为已被借走stringsqlSetIsBorrow=@"update图书信息表set现存数量=现存数量-1where书籍条码='"+this.textBox条码+"'";SqlCommandcommd=newSqlCommand(sqlSetIsBorrow,conn);intcount1=commd.ExecuteNonQuery();if(count1>0){MessageBox.Show("修改图书表成功");}else{MessageBox.Show("修改图书表失败");}//书籍借走后将此用户的已借数量加1StringsqlupdateStr=@"update读者信息表set未还书数=未还书数+1where读者编号='"+this.textBox读者编号+"';";SqlCommandsqlcommand=newSqlCommand(sqlupdateStr,conn);intcount2=sqlcommand.ExecuteNonQuery();if(count2>0){MessageBox.Show("修改读者表成功");}else{MessageBox.Show("修改读者表失败");}MessageBox.Show("借书成功");conn.Close();}else{//dr.Close();MessageBox.Show("此书已被借走或不存在,请重新输入","提示");conn.Close();//return;}

解决方案四:
希望大家能帮帮忙
解决方案五:
首先你加个TryCatch,然后调试,确切的直到是那一段出错,然后我再来给你看看。
解决方案六:
this.textBox条码-》this.textBox条码.Text
解决方案七:
引用4楼lc2737的回复:

首先你加个TryCatch,然后调试,确切的直到是那一段出错,然后我再来给你看看。

我觉得我要教会的是你找问题的方法,而不是直接告诉你错误在哪里。
解决方案八:
引用6楼lc2737的回复:

Quote: 引用4楼lc2737的回复:
首先你加个TryCatch,然后调试,确切的直到是那一段出错,然后我再来给你看看。

我觉得我要教会的是你找问题的方法,而不是直接告诉你错误在哪里。

我用的是断点查询错误,但是修改数据库返回的行数总是0,不知道怎么回事。
解决方案九:
引用5楼duanzi_peng的回复:

this.textBox条码-》this.textBox条码.Text

这个我已经修改了。
解决方案十:
引用7楼sinat_22269477的回复:

Quote: 引用6楼lc2737的回复:
Quote: 引用4楼lc2737的回复:
首先你加个TryCatch,然后调试,确切的直到是那一段出错,然后我再来给你看看。

我觉得我要教会的是你找问题的方法,而不是直接告诉你错误在哪里。

我用的是断点查询错误,但是修改数据库返回的行数总是0,不知道怎么回事。

那你将最后执行返回为0的Sql语句直接放到SqlManagement里面去执行看看,对于Sql来说,可是我们的基本功啊,这个必须得练好。
解决方案十一:
引用8楼sinat_22269477的回复:

Quote: 引用5楼duanzi_peng的回复:
this.textBox条码-》this.textBox条码.Text

这个我已经修改了。

调试的时候取出来那个代码,然后去数据库执行一下看看是否能成功,
解决方案十二:
引用10楼u013063561的回复:

Quote: 引用8楼sinat_22269477的回复:
Quote: 引用5楼duanzi_peng的回复:
this.textBox条码-》this.textBox条码.Text

这个我已经修改了。

调试的时候取出来那个代码,然后去数据库执行一下看看是否能成功,

在数据库执行没问题的话,就说明语句是没问题的,那你就得在你代码里面做工作了,
解决方案十三:
SQL语句有错误,而且已经告诉你了在'8412541'附近你是否数据库里字段类型是number,那么就不要加单引号
解决方案十四:
你的查询语句有错误,你在查询语句设个断点,单步执行,看看到哪步出错了 ,读者编号会不会是整数型,如果是,就不要用单引号,
解决方案十五:
C#插入、修改SQLServer数据库示例//插入数据库数据privatevoidbutton1_Click(objectsender,EventArgse){//调用datatier对象的Add()方法向数据库添加数据dt.Add(newInstance(){Name=txt_name_add.Text,phone=txt_phone_add.Text});dataGridView1.DataSource=dt.Select();//更新dataGridView1控件中的信息Clear();//清空TextBox控件中的文本}//自定义方法插入信息publicvoidAdd(Instanceit){SqlConnectionsc=GetConnection();//调用GetConnections()方法,得到连接对象try{sc.Open();//打开到数据库的连接SqlCommandcmd=newSqlCommand(//创建SqlCommand对象"insertintotb_friend(names,phone)values(@names,@phone)",sc);cmd.Parameters.Add("@names",SqlDbType.VarChar).Value=it.Name;//向SqlCommand对象添加参数cmd.Parameters.Add("phone",SqlDbType.VarChar).Value=it.phone;//向SqlCommand对象添加参数cmd.ExecuteNonQuery();//执行SqlCommand对象中的SQL命令}catch(Exceptionex)//捕获异常{Console.WriteLine(ex.Message);}finally{if(sc.State==ConnectionState.Open)//判断是否连接数据库{sc.Close();//如果已经连接则关闭连接}}}//codego.net/tags/1/1///修改数据库信息privatevoidbtn_update_Click(objectsender,EventArgse){//调用datatier对象的Update()方法,更改数据库中的信息dt.Update(newInstance(){Name=txt_name_update.Text,phone=txt_phone_update.Text});dataGridView1.DataSource=dt.Select();//更新dataGridView1控件中的信息Clear();//清空TextBox控件中的文本}//自定义修改数据方法publicvoidUpdate(Instanceit){SqlConnectionsc=GetConnection();//调用GetConnections()方法,得到连接对象try{sc.Open();//打开到数据库的连接SqlCommandcmd=newSqlCommand(//创建SqlCommand对象"updatetb_friendsetphone=@phonewherenames=@names",sc);cmd.Parameters.Add("@names",SqlDbType.VarChar).Value=it.Name;//向SqlCommand对象添加参数cmd.Parameters.Add("phone",SqlDbType.VarChar).Value=it.phone;//向SqlCommand对象添加参数cmd.ExecuteNonQuery();//执行SqlCommand对象中的SQL命令}catch(Exceptionex){Console.WriteLine(ex.Message);}finally{if(sc.State==ConnectionState.Open)//判断是否连接数据库{sc.Close();//如果已经连接则关闭连接}}}

时间: 2024-05-13 10:53:21

求助 关于插入,修改 SQL server数据库的问题的相关文章

T-sql语句修改SQL Server数据库逻辑名、数据库名、物理名的方法_MsSql

本文实例讲述了T-sql语句修改SQL Server数据库逻辑名.数据库名.物理名的方法.分享给大家供大家参考,具体如下: 更改MSSQL数据库物理文件名Sql语句的写法 注意:要在活动监视器里面确保没有进程连接你要改名的数据库!!!!!!!!!!!!!!!!!!!! Sql语句如下 USE master --改逻辑名 ALTER DATABASE YQBlog MODIFY FILE(NAME='YQBlogAA',NEWNAME='YQBlog') -- GO ALTER DATABASE

修改SQL Server数据库相关字段的默认值

  原来的数据库有好多类型的数据默认值都是 null 值,为以后在实际开发过程中带了好多不变.这个null其实也有好处,我想可以节省数据库的空间,在新增数据的时候还可以提高速度.不过还是应领导要求写了下面的代码.在CSDN的大侠帮助下完成的. declare @t table(id int identity(1,1),tbname varchar(256), colname varchar(256),xtype varchar(20)) insert into @t select a.name,

修改SQL Server数据库中的逻辑文件名

使用 FILE_NAME 函数可以返回给定文件标识 (ID) 号的逻辑文件名. 如下: 下例返回 file_ID 为 1 的文件名(master 数据库文件). USE master SELECT FILE_NAME(1) 当我们进行从一个备份中还原数据库时,数据库的逻辑文件名是不会改变的. 可用 ALTER DATABASE 的 MODIFY FILE 子句作为替代方式更改数据文件或日志文件的逻辑名称. alter database 数据库名modify file (name=逻辑名,newn

将DataTable 数据插入 SQL SERVER 数据库

原文:将DataTable 数据插入 SQL SERVER 数据库 以下提供3中方式将DataTable中的数据插入到SQL SERVER 数据库: 一:使用sqlcommand.executenonquery()方法插入 foreach (DataRow datarow in datatable.Rows) { string sql = "INSERT INTO [Table_1] ([CompanyName],[CompanyCode],[Address],[Owner],[Memo])&q

python学习-python创建sql server 数据库问题求助

问题描述 python创建sql server 数据库问题求助 用python来创建一个数据库,如果存在就不用创建,如果不存在就创建一个: cursor.execute('if not exists(select * from master..sysdatabases where name = python) create database python;') 这样写编译不过,求助 解决方案 先用sql语句判断一下表格,不在,再调用创建

《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.6 修改SQL Server实例配置

2.6 修改SQL Server实例配置 本方案讲述如何使用PowerShell修改实例配置设置. 2.6.1 准备 在本方案,你将会: 修改FillFactor到60%启用SQL Server Agent设置最小服务器内存到500MB修改验证方式为Mixed 2.6.2 如何做- 让我们用PowerShell修改一些SQL Server设置. 1.通过"Start | Accessories | Windows PowerShell | Windows PowerShell ISE"

VFP中用SPT访问SQL Server数据库

VFP因它简单易学,可快速建立应用软件而深受广大程序员喜爱,但其数据库系统不安全也令广大用户非常头痛.随着MS SQL Server数据库系统的推广应用,其强大的安全性能普遍受到好评.笔者在长期的编程实践中,发现利用VFP的SQL pass-through(SPT)技术结合MS SQL Server数据库系统,也能像VB.Delphi.PowerBuilder一样轻松开发出优秀的客户/服务器(C/S)应用软件.现通过编写一个简单的通信录例子和广大VFP爱好者共同探讨. 一.服务器端MS SQL

强烈推荐:SQL Server数据库操作实用技巧锦集

server|sql|技巧|数据|数据库 本文主要概括安装时提示有挂起的操作.收缩数据库.压缩数据库.转移数据库给新用户以已存在用户权限.检查备份集.修复数据库等操作技巧. 1.挂起操作 在安装SQL或SP补丁的时候系统提示之前有挂起的安装操作,要求重启,这里往往重启无用,解决办法: 到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager删除PendingFileRenameOperations. 2.收缩数据库

MS SQL Server数据库查询优化及分页算法

server|分页|数据|数据库|算法|优化 探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页.以下代码说明了我们实例中数据库的"红头文件"一表的部分数据结构:CREATE TABLE [dbo].[TGongwen] (    --TGongwen是红头文件表名    [Gid] [int] IDENTITY (1, 1) NOT NULL ,--本表的id号,也是主键    [title] [varchar] (80) COLLATE