概括ADO.NET中Database 数据库连接形式(基础)

概括ADO.NET中Database数据库连接形式(基础)

  第一种

  通过直接在cs文件中编写查询语句调用dbcom.ExecuteNonQuery();执行插入数据

复制代码
 
 
1 // 连接字符串 2 string ConnectionString = ConfigurationManager.ConnectionStrings[ " db_Test01ConnectionString " ].ConnectionString; 3 string ProviderName = ConfigurationManager.ConnectionStrings[ " db_Test01ConnectionString " ].ProviderName; 4 DbProviderFactory dbproviderfactory = DbProviderFactories.GetFactory(ProviderName); 5 DbConnection dbcon = dbproviderfactory.CreateConnection(); 6 dbcon.ConnectionString = ConnectionString; 7 DbCommand dbcom = dbproviderfactory.CreateCommand(); 8 dbcom.Connection = dbcon; 9 dbcom.CommandText = " Insert into dt_Table01(name,psw) values(@name,@psw) " ; 10 dbcom.CommandType = CommandType.Text; 11 12 // 添加参数 13 DbParameter dbparameter = dbproviderfactory.CreateParameter(); 14 dbparameter.ParameterName = " @name " ; 15 dbparameter.DbType = DbType.String; 16 dbparameter.Value = " xiaolong " ; 17 dbcom.Parameters.Add(dbparameter); 18 dbparameter = dbproviderfactory.CreateParameter(); 19 dbparameter.ParameterName = " @psw " ; 20 dbparameter.DbType = DbType.String; 21 dbparameter.Value = " 123 " ; 22 dbcom.Parameters.Add(dbparameter); 23 dbcon.Open(); 24 try 25 { 26 dbcom.ExecuteNonQuery(); 27 } 28 catch (Exception ex) 29 { 30 // 将错误写入日志里 31 AddLogError(ex.ToString()); 32 Response.Redirect( " ~/ErrorPage.aspx " ); 33 } 34 finally 35 { 36 dbcon.Close(); 37 }
复制代码

  第二种当然是调用存储过程

复制代码
 
 
1 // 存储过程的 2 string ConnectionString = ConfigurationManager.ConnectionStrings[ " db_Test01ConnectionString " ].ConnectionString; 3 string ProviderName = ConfigurationManager.ConnectionStrings[ " db_Test01ConnectionString " ].ProviderName; 4 DbProviderFactory dbproviderfactory = DbProviderFactories.GetFactory(ProviderName); 5 DbConnection dbcon = dbproviderfactory.CreateConnection(); 6 dbcon.ConnectionString = ConnectionString; 7 DbCommand dbcom = dbproviderfactory.CreateCommand(); 8 dbcom.Connection = dbcon; 9 dbcom.CommandType = CommandType.StoredProcedure; 10 dbcom.CommandText = " InsertTable01 " ; 11 DbParameter dbparameter = dbproviderfactory.CreateParameter(); 12 dbparameter.DbType = DbType.String; 13 dbparameter.ParameterName = " @name " ; 14 dbparameter.Value = " xiaohe " ; 15 dbcom.Parameters.Add(dbparameter); 16 dbparameter = dbproviderfactory.CreateParameter(); 17 dbparameter.ParameterName = " @psw " ; 18 dbparameter.DbType = DbType.String; 19 dbparameter.Value = " 123 " ; 20 dbcom.Parameters.Add(dbparameter); 21 dbcon.Open(); 22 try 23 { 24 dbcom.ExecuteNonQuery(); 25 } 26 catch (Exception ex) 27 { 28 AddLogError(ex.ToString()); 29 Response.Redirect( " ~/ErrorPage.aspx " ); 30 } 31 finally 32 { 33 dbcon.Close(); 34 }
复制代码

第三种就是可能同时插入两张表或者三张表或者更多。必须是同时,运用到了事务回滚机制。存储过程写法就不给出来了和上面一样。只是在存储过程编写事务。

复制代码
 
 
1 // 同时插入两张的表 2 string ConnectionString = ConfigurationManager.ConnectionStrings[ " db_Test01ConnectionString " ].ConnectionString; 3 string ProviderName = ConfigurationManager.ConnectionStrings[ " db_Test01ConnectionString " ].ProviderName; 4 DbProviderFactory dbproviderfactory = DbProviderFactories.GetFactory(ProviderName); 5 DbConnection dbcon = dbproviderfactory.CreateConnection(); 6 dbcon.ConnectionString = ConnectionString; 7 DbCommand dbcom = dbproviderfactory.CreateCommand(); 8 dbcom.Connection = dbcon; 9 dbcom.CommandType = CommandType.Text; 10 11 DbParameter dbparameter = dbproviderfactory.CreateParameter(); 12 dbparameter.DbType = DbType.String; 13 dbparameter.ParameterName = " @name " ; 14 dbparameter.Value = " xiaohei " ; 15 dbcom.Parameters.Add(dbparameter); 16 dbparameter = dbproviderfactory.CreateParameter(); 17 dbparameter.ParameterName = " @psw " ; 18 dbparameter.DbType = DbType.String; 19 dbparameter.Value = " 123 " ; 20 dbcom.Parameters.Add(dbparameter); 21 dbparameter = dbproviderfactory.CreateParameter(); 22 dbparameter.DbType = DbType.String; 23 dbparameter.ParameterName = " @teacher " ; 24 dbparameter.Value = " heihei " ; 25 dbcom.Parameters.Add(dbparameter); 26 27 dbcon.Open(); 28 // 事务开始 29 DbTransaction dbtran = dbcon.BeginTransaction(); 30 dbcom.Transaction = dbtran; 31 32 try 33 { 34 dbcom.CommandText = " insert into dt_table01(name,psw) values(@name,@psw) " ; 35 dbcom.ExecuteNonQuery(); 36 dbcom.CommandText = " insert into dt_table03(teacher,psw) values(@teacher,@psw) " ; 37 dbcom.ExecuteNonQuery(); 38 // 成功就提交 39 dbtran.Commit(); 40 } 41 catch (Exception ex) 42 { 43 // 出错就回滚 44 dbtran.Rollback(); 45 AddLogError(ex.ToString()); 46 Response.Redirect( " ~/ErrorPage.aspx " ); 47 } 48 finally 49 { 50 dbcon.Close(); 51 dbtran.Dispose(); 52 }
复制代码

第四种

通过使用DbDataAdapter来获得查询的结果

复制代码
 
 
1 // 查询数据库 2 string ConnectionString = ConfigurationManager.ConnectionStrings[ " db_Test01ConnectionString " ].ConnectionString; 3 string ProviderName = ConfigurationManager.ConnectionStrings[ " db_Test01ConnectionString " ].ProviderName; 4 DbProviderFactory dbproviderfactory = DbProviderFactories.GetFactory(ProviderName); 5 DbConnection dbcon = dbproviderfactory.CreateConnection(); 6 dbcon.ConnectionString = ConnectionString; 7 DbCommand dbcom = dbproviderfactory.CreateCommand(); 8 dbcom.Connection = dbcon; 9 dbcom.CommandText = " Select * from dt_Table01 where name=@name " ; 10 dbcom.CommandType = CommandType.Text; 11 DbParameter dbparameter = dbproviderfactory.CreateParameter(); 12 dbparameter.ParameterName = " @name " ; 13 dbparameter.DbType = DbType.String; 14 dbparameter.Value = " xiaolong " ; 15 dbcom.Parameters.Add(dbparameter); 16 DataSet ds = new DataSet(); 17 DbDataAdapter dbDataAdapeter = dbproviderfactory.CreateDataAdapter(); 18 dbDataAdapeter.SelectCommand = dbcom; 19 try 20 { 21 dbDataAdapeter.Fill(ds, " data " ); 22 } 23 catch (Exception ex) 24 { 25 AddLogError(ex.ToString()); 26 Response.Redirect( " ~/ErrorPage.aspx " ); 27 } 28 finally 29 { 30 dbDataAdapeter.Dispose(); 31 }
复制代码

第5种

使用DbDataReader或者查询结果,这里给出查询第一行第一列值,当然也可以直接调用Command.ExecuteScalar();函数

复制代码
 
1 string ConnectionString = ConfigurationManager.ConnectionStrings[ " db_Test01ConnectionString " ].ConnectionString; 2 string ProviderName = ConfigurationManager.ConnectionStrings[ " db_Test01ConnectionString " ].ProviderName; 3 DbProviderFactory dbproviderfactory = DbProviderFactories.GetFactory(ProviderName); 4 DbConnection dbcon = dbproviderfactory.CreateConnection(); 5 dbcon.ConnectionString = ConnectionString; 6 DbCommand dbcom = dbproviderfactory.CreateCommand(); 7 dbcom.Connection = dbcon; 8 dbcom.CommandText = " Select * from dt_Table01 where name=@name " ; 9 dbcom.CommandType = CommandType.Text; 10 DbParameter dbparameter = dbproviderfactory.CreateParameter(); 11 dbparameter.ParameterName = " @name " ; 12 dbparameter.DbType = DbType.String; 13 dbparameter.Value = " xiaolong " ; 14 dbcom.Parameters.Add(dbparameter); 15 dbcon.Open(); 16 DbDataReader dbDataReader = null ; 17 string re = string .Empty; 18 try 19 { 20 dbDataReader = dbcom.ExecuteReader(CommandBehavior.SingleRow); 21 } 22 catch (Exception ex) 23 { 24 AddLogError(ex.ToString()); 25 Response.Redirect( " ~/ErrorPage.aspx " ); 26 } 27 finally 28 { 29 dbcon.Close(); 30 dbDataReader.Close(); 31 } 32 // 读入值 33 if (dbDataReader.Read()) 34 { 35 // 得到第一列值 36 re = dbDataReader.GetValue( 0 ).ToString(); 37 } 38 re = re + " hah " ;
 

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值