rry
{
SqlConnection conn = new SqlConnection("连接字符");
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter("SQL语句",conn);
DataSet ds = new DataSet();
sda.Fill(ds,"表名");
}
catch
{
conn.colse();
}
{
SqlConnection conn = new SqlConnection("连接字符");
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter("SQL语句",conn);
DataSet ds = new DataSet();
sda.Fill(ds,"表名");
}
catch
{
conn.colse();
}
{
SqlConnection conn = new SqlConnection("连接字符");
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter("SQL语句",conn);
DataSet ds = new DataSet();
sda.Fill(ds,"表名");
}
catch)(SqlException ex)
{
Response.writ(ex.messge);
conn.colse();
}
{
链接数据库并得到结果
}
cathc
{
做异常处理
}
fanlly
{
关闭链接
}
Dim da As SqlDataAdapter
Dim strConn As String = "database = Pubs; server =(local); Uid=sa; pwd="
Dim strsql As String = "select * from authors" Try
Dim cn As New SqlConnection(strConn)
Dim cmd As New SqlCommand(strsql, cn)
da = New SqlDataAdapter(cmd)
cn.open()
da.Fill(ds, "author")
DG1.DataSource = ds.Tables("author")
Catch ex As Exception
MsgBox(ex.GetType.ToString & ":" & ex.Message)
End Try
Dim cmd As New SqlCommand("select * from products", con)
try{
con.Open()
objreader = cmd.ExecuteReader()} catch{//异常处理的语句} finally
{con.Close()}
只要在打开数据库连接和执行数据库操作的时候用try语句控制就可以,一般异常都发生在打开数据库连接和执行数据库操作的时候
Imports System.Xml
Imports System.Data.SqlClient
Imports System.IO
Imports System.Diagnostics.DebugNamespace DataAccessNamespace#Region "DataAccess" Public Class DataAccess 'SqlConnectionのクラスを初期化
Public SqlConn As New SqlConnection()
Public ProName As String = "" Public Sub New(ByVal conn As SqlConnection, ByVal pro As String)
SqlConn = conn
ProName = pro
End Sub Public Sub New(ByVal conn As SqlConnection)
SqlConn = conn
End Sub '机能: DBのデータを検索する
'引数: strCommandText sql文
'引数: rtnDataSet 検索の結果
'返す: 0000 成功する、 その他はエラー
Public Function Query(ByVal strCommandText As String, ByRef rtnDataSet As DataSet) As String Dim strRtn As String
If IsNothing(strCommandText) Or IsDBNull(strCommandText) Then Return "" 'DBに検索のレコードはDataSetクラスのセットする
strRtn = getSqlDataSet(SqlConn, rtnDataSet, strCommandText)
If strRtn <> "0000" Then 'エラーメッセージを生成する。
WriteLog(strRtn, strCommandText)
'エラーの場合 エラーメッセージを返す
Return strRtn
End If 'If True Then
' 'エラーメッセージを生成する。
' WriteLog("", strCommandText)
'End If '0000の返す
Query = "0000" End Function '机能: DBのデータを更新する
'引数: strCommandText 更新のsql文
'返す: 0000 成功する、 その他はエラー
Public Function Update(ByVal strCommandText As ArrayList) As String If IsNothing(strCommandText) Or IsDBNull(strCommandText) Then Return "" 'ArrayListのクラス()を初期化
Dim arylist As New ArrayList() 'SqlCommandのクラスを初期化
Dim SqlCmd = New SqlCommand()
SqlCmd = SqlConn.CreateCommand() 'IEnumeratorのクラスを初期化
Dim myEnumerator As System.Collections.IEnumerator = strCommandText.GetEnumerator() '事務を始まる
SqlCmd.transaction = SqlConn.BeginTransaction() 'SQL文の循環
While myEnumerator.MoveNext() Try
'更新のSQL文をセット
SqlCmd.Commandtext = myEnumerator.Current 'DBを更新処理
SqlCmd.ExecuteNonquery() Catch exp As Exception
'エラーの場合、事務を割戻し
SqlCmd.Transaction.Rollback()
'エラーメッセージを生成する。
WriteLog(exp.Message, SqlCmd.Commandtext)
'エラーの場合 エラーメッセージを返す
Return exp.Message
End Try 'If True Then
' 'エラーメッセージを生成する。
' WriteLog("", SqlCmd.Commandtext)
'End If End While '事務を正常終了
SqlCmd.Transaction.Commit() '0000の返す
Update = "0000" End Function '机能: Web.configファイrからDBに接続の字符串を取得する
'返す: 接続の字符串
Private Function getConnectionString() As String
Return ConfigurationSettings.AppSettings("SQLConnectionString")
End Function '机能: DBに接続
'引数: SqlConn SqlConnectionのクラス
'返す: 0000 成功する、 その他はエラー
Public Function getSqlConnection(ByRef SqlConn As SqlConnection) As String Try
'SqlConnectionのクラスを初期化
SqlConn = New SqlConnection(getConnectionString())
'SqlConnectionのクラスを開ける
SqlConn.Open() Catch exp As SqlException
'エラーメッセージを生成する。
WriteLog(exp.Message, "")
'エラーの場合 エラーメッセージを返す
Return exp.Message
End Try '0000の返す
getSqlConnection = "0000" End Function '机能: DBに検索のレコードはDataSetクラスのセットする
'引数: SqlConn SqlConnectionのクラス
'引数: rtnDataSet 検索の結果
'引数: strCommandText sql文
'返す: 0000 成功する、 その他はエラー
Private Function getSqlDataSet(ByRef SqlConn As SqlConnection, ByRef SqlDataSet As DataSet, ByVal strCommandText As String) As String Try
'SqlDataAdapterのクラスを初期化
Dim SqlAdp As New SqlDataAdapter(strCommandText, SqlConn) 'DataSetのクラスを初期化
SqlDataSet = New DataSet() 'DBに検索のレコードをDataSetに格納する
SqlAdp.Fill(SqlDataSet)
Catch exp As SqlException
'エラーの場合 エラーメッセージを返す
Return exp.Message
End Try '0000の返す
getSqlDataSet = "0000" End Function '**************************************************************************
'*機能:エラーメッセージを生成する。
'*日付 作成者
'*2004/08/23 朱 新規作成
'*// XX 変更
'**************************************************************************
Public Function WriteLog(ByVal Message As String, ByVal SQL As String) As String If Message = "" Then Message = "OK"
If ProName = "" Then ProName = "COM_001"
Dim DataStr As String = Format(Now(), "General Date")
Dim str As String = "[ " + DataStr + " ] [ " + ProName + " ] [ " + Message + " ] [ SQL: " + SQL + " ]"
Dim FilePath As String = ConfigurationSettings.AppSettings("PDFTempPath")
FilePath += "Log.Txt"下面接着
Dim fs As New FileStream(FilePath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)
Dim objStreamWriter As StreamWriter = New StreamWriter(fs, System.Text.Encoding.GetEncoding("Shift-JIS")) objStreamWriter.WriteLine(str)
objStreamWriter.Flush()
objStreamWriter.Close() End Function '**************************************************************************
'机能: DBのデータを検索する(仕訳連動処理)
'引数: strCommandText sql文
'引数: rtnDataReader 検索の結果
'返す: 0000 成功する、 その他はエラー '*日付 作成者
'*2004/08/28 汪 新規作成
'*// XX 変更
'**************************************************************************
Public Function KYOQuery(ByVal strCommandText As String, ByRef rtnDataReader As SqlDataReader) As String Dim strRtn As String
'Dim trans As SqlTransaction 'DBに検索のレコードはrtnDataReaderクラスのセットする
Dim cmdSelect As SqlCommand
cmdSelect = New SqlCommand(strCommandText, SqlConn)
'trans = SqlConn.BeginTransaction()
'cmdSelect.Transaction = trans Try
rtnDataReader = cmdSelect.ExecuteReader() 'trans.Commit() Catch exp As SqlException
'エラーの場合 エラーメッセージを返す
'trans.Rollback()
Return exp.Message
End Try 'エラーメッセージを生成する。
WriteLog("", strCommandText) '0000の返す
KYOQuery = "0000" End Function '**************************************************************************
'机能: DBのデータを検索する
'引数: strCommandText sql文
'引数: rtnDataReader 検索の結果
'返す: DBのデータ '*日付 作成者
'*2004/09/10 汪 新規作成
'*// XX 変更
'**************************************************************************
Public Function GetNameStr(ByVal strCommandText As String) As String Dim strRtn As String 'DBに検索のレコードはrtnDataReaderクラスのセットする
Dim cmdSelect As SqlCommand
cmdSelect = New SqlCommand(strCommandText, SqlConn) Try
strRtn = cmdSelect.ExecuteScalar() Catch exp As SqlException
'エラーの場合 エラーメッセージを返す Return exp.Message
End Try 'エラーメッセージを生成する。
WriteLog("", strCommandText) Return strRtn End Function End Class#End Region
End Namespace定义一个数据库访问的类,每次访问数据库然后调用就可以
dim myconnection as sqlconnection
myconnection=new sqlconnection("server=localhost;uid=sa;pwd=missyou;database=jkdata")
myconnection.open()
Dim myInsertQuery As String = "insert into guzhang(num,name) values ('2123','& xx.text &"')"
'使用mycommand 对象执行SQL命令
dim mycommand as sqlcommand=new sqlcommand(myInsertQuery,myconnection)
myCommand.ExecuteNonQuery()
myCommand.Connection.Close()
{
myconnection=new sqlconnection("server=localhost;uid=sa;pwd=missyou;database=jkdata")
myconnection.open()
Dim myInsertQuery As String = "insert into guzhang(num,name) values ('2123','& xx.text &"')"
'Žg—pmycommand ?Û?sSQL–½—ß
dim mycommand as sqlcommand=new sqlcommand(myInsertQuery,myconnection)
myCommand.ExecuteNonQuery()
myCommand.Connection.Close()
}
Catch ex As Exception
Console.WriteLine(ex.ToString())
End Try
但我想思路一样的,看以下MSDN吧,哥们
{
SqlConnection conn = new SqlConnection("连接字符");
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter("SQL语句",conn);
DataSet ds = new DataSet();
sda.Fill(ds,"表名");
}
catch(SqlException Error)
{
Console.Write(Error.Message);
}
finally
{
conn.close();
}