重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你这么写 很容易 被 SQL注入的。
云龙网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、自适应网站建设等网站项目制作,到程序开发,运营维护。成都创新互联2013年至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联。
我只要 在 原用户密码TextBox 里面 写上 123‘ go 你全部的用户的密码都成123 了
我建议你 把这些跟数据库的操作 都改成存储过程 然后 再对单引号 处理下
哈哈 再补上一个
如果我写上这个
DECLARE @tn VARCHAR(10) DECLARE myCusor1 CURSOR FOR select [name] from [sysobjects] where [type] = 'u' OPEN myCusor1 FETCH NEXT FROM myCusor1 INTO @tn WHILE @@FETCH_STATUS = 0 BEGIN declare @sql varchar(1000) set @sql='drop table '+@tn exec @sql FETCH NEXT FROM myCusor1 INTO @tn END CLOSE myCusor1 DEALLOCATE myCusor1
都会把你这个 数据库下 全部的表都删完 你试试
java中使用jdbc连接sql server数据库步骤:
1.JDBC连接SQL Server的驱动安装 ,前两个是属于数据库软件,正常安装即可(注意数据库登陆不要使用windows验证)
1 将JDBC解压缩到任意位置,比如解压到C盘program files下面,并在安装目录里找到sqljdbc.jar文件,得到其路径开始配置环境变量
在环境变量classpath 后面追加 C:\Program Files\Microsoft SQL Server2005 JDBC Driver\sqljdbc_1.2\enu\sqljdbc.jar
2 设置SQLEXPRESS服务器:
a.打开SQL Server Configuration Manager - SQLEXPRESS的协议 - TCP/IP
b.右键单击启动TCP/IP
c.双击进入属性,把IP地址中的IP all中的TCP端口设置为1433
d.重新启动SQL Server 2005服务中的SQLEXPRESS服务器
e.关闭SQL Server Configuration Manager
3 打开 SQL Server Management Studio,连接SQLEXPRESS服务器, 新建数据库,起名字为sample
4 打开Eclipse
a.新建工程- Java - Java project,起名为Test
b.选择eclipse-窗口-首选项-Java-installed JRE 编辑已经安装好的jdk,查找目录添加sqljdbc.jar
c.右键单击目录窗口中的Test, 选择Build Path -Configure Build Path..., 添加扩展jar文件,即把sqljdbc.jar添加到其中
5 编写Java代码来测试JDBC连接SQL Server数据库
import java.sql.*;
public class Test {
public static void main(String[] srg) {
//加载JDBC驱动
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//连接服务器和数据库sample
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=sample";
String userName = "sa"; //默认用户名
String userPwd = "123456"; //密码
Connection dbConn;
try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("Connection Successful!"); //如果连接成功 控制台输出
} catch (Exception e) {
e.printStackTrace();
}
}
}
执行以后就可以连接到sample数据库了。
文档上说:
任何时候,会话中只有一个表的 IDENTITY_INSERT 属性可以设置为 ON。如果某个表已将此属性设置为 ON,并且为另一个表发出了 SET IDENTITY_INSERT ON 语句,则 Microsoft® SQL Server™ 返回一个错误信息,指出 SET IDENTITY_INSERT 已设置为 ON 并报告此属性已设置为 ON 的表。
你要把所有不是b的表包括a表的IDENTITY_INSERT 设为 OFF,b表的设为ON
Private Sub 入库_click()
'默认你的后面的textbox的名称就是前面的名称
'这里的数据类型可能要转换,比如价格可能要转换成double(CDbl()),购买日期转行成日期时间型(CDate())
'假设你的数据表是aa,字段名和界面显示是一样的
Dim Rs As ADODB.Recordset
'在插入前建议你在aa表里查查这条记录是否已经存在,如果已经存在则给出提示(查询条件看你怎么设置的主键了)
Rs = objADO.GetRs("insert into aa (书名,定价,作者,图书类别,出版社,介质,购买日期,内容简介) values (" 书名.Text "," vbCrLf _
"定价.text ", " 作者.text ", " 图书类别.text ", " 出版社.text ", " 介质.text ", " 购买日期.text ", " 内容简介.text ")
'这里如果表aa的字段多于界面显示的也没关系,只会给你aa后面括号里的字段赋值,这里后面values的顺序必须和前面的对应
'正确插入后建议给个提示,同时看看有没有必要把界面的所有值清空(图书类别.text = "")
'这里的objADO建议这么定义Public objADO As SqlServer,有别的查询也可以直接用,你自己怎么定义的就换成你自己的
'GetRs的定义在下面,你也可能是dim strsql as string,然后strsql = (上面的插入语句),然后用下面Rs.Open strSql, Conn, adOpenStatic, adLockReadOnly的方法,都行的,就看你自己怎么写的了
End Sub
Public Function GetRs(ByVal strSql As String) As ADODB.Recordset '通过执行SQL语句返回记录集
Dim Rs As ADODB.Recordset
On Error GoTo Err0
If Not OpenDB Then
Exit Function
End If
Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseClient '使用本地(客户端)游标,这样Rs.RecordCount属性才能正确返回记录集行数
DoEvents
Rs.Open strSql, Conn, adOpenStatic, adLockReadOnly
Set GetRs = Rs
Exit Function
Err0:
If InStr(1, Err.Description, "通讯链接失败") 0 Then
Set Conn = New ADODB.Connection
LocalStat = "断开" '设置本地数据库连接状态
End If
MsgBox Err.Description
End Function