1 public void getconn(string sql)//数据库 *** 作链接方法
{
string conn = ConfigurationSettings.AppSettings["conn"].ToString()
MySqlConnection mysql = new MySqlConnection(conn)//实例化链接
mysql.Open()//开启
MySqlCommand comm = new MySqlCommand(sql, mysql)
comm.ExecuteNonQuery()//执行
mysql.Close()//关闭资源
}
---------------------------------------------------------------------------------------------------------
2 public static MySqlDataAdapter getadaoter(string sql)//显示 *** 作
{
string conn = ConfigurationSettings.AppSettings["conn"].ToString()
MySqlConnection mysql = new MySqlConnection(conn)//实例化链接
mysql.Open()//开启
MySqlCommand comm = new MySqlCommand(sql, mysql)
comm.ExecuteNonQuery()
MySqlDataAdapter mda = new MySqlDataAdapter(sql, mysql)
mysql.Close()
return mda
//需要在调用的时候进行数据集填充
}
----------3
app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="conn" value="Server=112.124.17.213User ID=rootPassword=123Database=goodsCharSet=gbk"/>
<!--链接数据库-->
<add key="category" value="st_category"/>
</appSettings>
</configuration>
1、本地登录到mysql数据库,mysql -uroot -p。
2、创建用户,使用命令:create user abc identified by 'yourpassword'。
3、退出使用刚创建的用户登陆,可以登录用户创建成功mysql -uabc -p。
4、使用此用户创建数据库是不行的,因为没有没有权限。
5、使用root用户登录数据库,创建新数据库并授权给abc用户。
6、使用abc用户本地登录,并切换到abcdb,并创建表CREATE TABLE s(name varchar(30))。
MySQL默认 *** 作模式就是autocommit自动提交模式。这就表示除非显式地开始一个事务,否则每个查询都被当做一个单独的事务自动执行。我们可以通过设置autocommit的值改变是否是自动提交autocommit模式。通过以下命令可以查看当前autocommit模式
mysql>show variables like 'autocommit'
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit| ON|
+---------------+-------+
1 row in set (0.04 sec)
从查询结果中,我们发现Value的值是ON,表示autocommit开启。我们可以通过以下SQL语句改变这个模式
mysql>set autocommit = 0
值0和OFF都是一样的,当然,1也就表示ON。通过以上设置autocommit=0,则用户将一直处于某个事务中,直到执行一条commit提交或rollback语句才会结束当前事务重新开始一个新的事务。
举个例子:
张三给李四转账500元。那么在数据库中应该是以下 *** 作:
1,先查询张三的账户余额是否足够
2,张三的账户上减去500元
3,李四的账户上加上500元
以上三个步骤就可以放在一个事务中执行提交,要么全部执行要么全部不执行,如果一切都OK就commit提交永久性更改数据;如果出错则rollback回滚到更改前的状态。利用事务处理就不会出现张三的钱少了李四的账户却没有增加500元或者张三的钱没有减去李四的账户却加了500元。
MySQL默认的存储引擎是MyISAM,MyISAM存储引擎不支持事务处理,所以改变autocommit没有什么作用。但不会报错,所以要使用事务处理的童鞋一定要确定你所 *** 作的表示支持事务处理的,如InnoDB。如果不知道表的存储引擎可以通过查看建表语句查看建表的时候有没有指定事务类型的存储引擎,如果没有指定存储引擎默认则是MyISAM不支持事务的存储引擎。
当然,事务处理是为了保障表数据原子性、一致性、隔离性、持久性。这些都是要消耗系统资源的,要谨慎选择。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)