组件中定义数据库类型, 用enum表示
定义各个数据库访问的接口 private IDbConnection Connection = null;
private IDbTransaction Transaction = null;
private IDbCommand Command = null;
private IDataReader DataReader = null; 再去实现数据库打开时判断是什么类型的(sql, oledb, oracle, odbc), 采用不同的方式实例化connection对象, 它的值赋给IDbConnection的实例数据库的设sql语句, 执行语句, 取得结果, 取Reader, 取Scalar, 全都要判断一下数据库类型,再通过接口去实例化, 去执行语句, 去取值
定义各个数据库访问的接口 private IDbConnection Connection = null;
private IDbTransaction Transaction = null;
private IDbCommand Command = null;
private IDataReader DataReader = null; 再去实现数据库打开时判断是什么类型的(sql, oledb, oracle, odbc), 采用不同的方式实例化connection对象, 它的值赋给IDbConnection的实例数据库的设sql语句, 执行语句, 取得结果, 取Reader, 取Scalar, 全都要判断一下数据库类型,再通过接口去实例化, 去执行语句, 去取值
解决方案 »
- 利用GridView显示主细表并作删除操作(有在GridView中利用Tree进行数据删除的更佳)
- 关于刷新页面重复提交问题讨论~
- GridView 日期格式化
- 关于数据库的问题?
- 问个貌似简单的问题,但是估计还是没人会.如何在同一页面中使用2个realplay播放器来播放2段视频文件
- 为小站BBS哀悼!!!!!!!!!!
- 请问在一个制作用户控件的问题?
- import 和 using 的区别是什么?
- 页面画图的问题?
- 请问下装完NET SDK的开发包后,IIS里边好多映射,哪些有用 哪些没用
- 我用asp.net做的移动web应用程序!可以做图片上传程序吗?急!!
- 在网上哪儿有关于介绍水晶报表的文章,资料!不要MSDN,要那种从入门到精通的那种
<%@ Import NameSpace="System.Data.SqlClient" %>
<%@ Import NameSpace="System.Data" %>
Dim strName as string
strName=Request.QueryString("name")
Response.write("<font size=2>用户名:"+strName+"<br>")
Dim myConnection as new SQLConnection("server=HH-Server;uid=shuiyu;pwd=shuiyu;database=shuiyu")
Dim myDataAdapter as new SQLDataAdapter("select * from USERS_R where username='"+strName+"'",myConnection)
Dim myDataSet as DataSet = new DataSet()
myDataAdapter.Fill(myDataSet,"USERS_R")
Dim myDataView as DataView
myDataView = new DataView(myDataSet.Tables("USERS_R"))
Dim strFlag as String =myDataView(0)("Flag").ToString().trim()
Select strFlag
Case "1"
Response.write("权限:超级管理员<br>")
Case "2"
Response.write("权限:部门管理员<br>")
Case "3"
Response.write("权限:录入人员<br>")
Case "4"
Response.write("权限:一般用户<br>")
end select
Session("username")=myDataView(0)("Flag")
Dim nTimes as integer =myDataView(0)("TIMES")+1
Response.write("登录次数:"+nTimes.ToString()+"<br>")
myDataSet.Tables("USERS_R").Rows(0)("LASTDT")= DateTime.now
myDataSet.Tables("USERS_R").Rows(0)("TIMES")=nTimes
myDataSet.Tables("USERS_R").Rows(0)("IP")= Request.UserHostAddress
myDataAdapter.UpdateCommand=new SqlCommand("Update USERS_R Set TIMES='"+nTimes.ToString()+"',LASTDT='"+DateTime.now.ToString()+"',IP='"+request.UserHostAddress+"' where username='"+strName+"'",myConnection)
myDataAdapter.Update(myDataSet,"USERS_R")
所以实现这个好的没什么实际意义
弯弯的月亮小小的船,小小的船,两头尖,我在小小的船里坐,只看见闪闪的
星星蓝蓝的天.
---------
using System;
using System.Data;
using System.Data.OracleClient;namespace DataOracle
{
/// <summary>
/// ForOracle 的摘要说明。
/// </summary>
public class ForOracle
{ /// <summary>
/// 数据库连接
/// </summary>
protected OracleConnection oracleConn; /// <summary>
/// 字符串连接
/// </summary>
protected string ConnectionString;
public ForOracle()
{
//
// TODO: 在此处添加构造函数逻辑
//
this.ConnectionString="Data Source = aris;user id=sa;password=sa";
} /// <summary>
/// 将查询语句的查询结果填充到DataTable
/// </summary>
/// <param name="SQLString">查询语句</param>
/// <returns>如果失败则返回null</returns>
public System.Data.DataTable getDataTable(string SQLString)
{
System.Data.DataSet ds = new System.Data.DataSet();
try
{
OracleDataAdapter custDA = new OracleDataAdapter(SQLString,this.ConnectionString);
custDA.Fill(ds);
return ds.Tables[0];
}
catch
{
return null;
}
} /// <summary>
/// 分批将查询语句的查询结果填充到DataTable
/// </summary>
/// <param name="SQLString">查询语句</param>
/// <returns>如果失败则返回null</returns>
public System.Data.DataTable getDataTable(string SQLString,int StartRecord,int MaxRecords,string ScrTable)
{
System.Data.DataSet ds = new System.Data.DataSet();
try
{
OracleDataAdapter custDA = new OracleDataAdapter(SQLString,this.ConnectionString);
custDA.Fill(ds,StartRecord,MaxRecords,ScrTable);
return ds.Tables[0];
}
catch
{
return null ;
}
} /// <summary>
/// 打开数据库连接
/// </summary>
/// <returns></returns>
protected bool openConnection()
{
if(this.oracleConn.State==System.Data.ConnectionState.Closed)
{
this.oracleConn.Open();
return true;
}
else
{
return true;
}
} /// <summary>
/// 关闭数据库连接
/// </summary>
/// <returns></returns>
protected bool closeConnection()
{
if(this.oracleConn.State == System.Data.ConnectionState.Open)
{
this.oracleConn.Close();
return true;
}
else
{
return true;
} }
/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>返回SQL语句影响的行数,如果失败则返回-1</returns>
public int excuteSql(string SQLString)
{
this.oracleConn = new OracleConnection(this.ConnectionString);
this.openConnection();
OracleCommand mCommand = new OracleCommand(SQLString,oracleConn);
try
{
int rows = mCommand.ExecuteNonQuery();
return rows;
}
catch
{
return -1;
}
finally
{
this.closeConnection();
}
}
/// <summary>
/// 执行Sql语句
/// </summary>
/// <param name="isolLevel">事务级别</param>
/// <param name="SQLStrings">一组Sql语句</param>
/// <returns>返回没个Sql语句的所影响的行数</returns> public int[] excuteSql(IsolationLevel isolLevel,params string[] SQLStrings)
{
this.oracleConn = new OracleConnection(this.ConnectionString);
this.openConnection();
int length = SQLStrings.Length;
int[] Rows = new int[length];
//启动一个事务
OracleTransaction myTrans;
myTrans = this.oracleConn.BeginTransaction(isolLevel);
OracleCommand mCommand = new OracleCommand();
mCommand.Connection = this.oracleConn;
mCommand.Transaction = myTrans;
try
{
//string sql = "";
for(int i=0;i<length;++i)
{
//sql += SQLStrings[i] + " \n";
mCommand.CommandText = SQLStrings[i];
Rows[i] = mCommand.ExecuteNonQuery();
}
//mCommand.CommandText = sql;
//mCommand.ExecuteNonQuery();
myTrans.Commit();
return Rows;
}
catch
{
myTrans.Rollback();
return null;
}
finally
{
this.closeConnection();
}
} /// <summary>
/// 当执行的查询只需要返回一个结果时使用此方法
/// </summary>
/// <param name="SQLString"></param>
/// <returns></returns> public System.Object getResult(string SQLString)
{
this.oracleConn = new OracleConnection(this.ConnectionString);
this.openConnection();
OracleCommand mCommand = new OracleCommand(SQLString,oracleConn);
try
{
object obj= mCommand.ExecuteScalar();
return obj;
}
catch
{
return null;
}
finally
{
this.closeConnection();
}
}
/// <summary>
/// 检测某条记录是否在数据库中存在
/// </summary>
/// <param name="GUIDName">主健的资段名</param>
/// <param name="GUID">主健的值</param>
/// <param name="tableName">表名</param>
/// <returns>如果存在返回true</returns> public bool isInDb(string GUIDName,string GUID ,string tableName)
{
if(GUID.Trim()!="")
{
string strSql="select count(*) aa from " + tableName + " where " + GUIDName + "='" + GUID + "'";
System.Data.DataTable dt = this.getDataTable(strSql);
if(dt == null || (int)dt.Rows[0][0] == 0)
{return false;}
else
{return true;}
}
else{return false;}
}
public bool isInDb(string GUID,string tableName)
{
return this.isInDb("GUID",GUID,tableName);
}
}
}
------------
希望对各位有点帮助!
http://www.aspxcn.com/dotnetbbs/View.aspx?fbId=17&Id=233175这个是我在它的基础上封装的。
我想把得到的结果指定插入 某一列
怎么做呢?
我本来想用下面的代码实现 但发现不可能只插入一列还有个小问题 假如我想对得到的数据进行 DISTINCT 怎么做呢/
是不是用 ds2.Tables(0).DefaultView.RowFilter = "distinct empolyee_id" 能实现呢?
temp = 10
Dim ds2 As New DataSet
Dim odAdapt2 As OleDb.OleDbDataAdapter
Do While temp >= 1
sql = "select isnull(employee" & temp & "_id,99999) employee" & temp & "_id from tb_work_arranged_list_ei_exchage where " & temp1
odAdapt2 = New OleDb.OleDbDataAdapter(sql, conn)
odAdapt2.Fill(ds2)
Response.Write(sql)
Response.Write("<br></br>")
temp -= 1
Loop
odAdapt2 = Nothing
Response.End()