當前位置:首頁 » 操作系統 » 資料庫操作類

資料庫操作類

發布時間: 2022-08-26 21:54:01

A. 如何封裝資料庫操作類

class Dbo{
String insert(表名,參數1...參數n){
執行 插入語句;
return 「操作成功」or 「操作失敗」

}

String delete(表名,參數1...參數n){
執行 刪除語句;
return 「操作成功」or 「操作失敗」

}
String update(表名,參數1...參數n){
執行 修改語句;
return 「操作成功」or 「操作失敗」

}
String select(表名,參數1...參數n){
執行查詢語句;
return 「查詢結果」or 「查詢失敗」

}
}

B. 怎麼調用資料庫操作類

直接調用就行了,不過可能你需要引用文件,以下是例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

//文件conn.php,用於連接資料庫
class DB_Conn {
}
//文件 db.php, 用於資料庫操作,這個類必然需要使用資料庫連接對象,因此引用conn.php
require_once conn.php;
class DB {
}
//文件user.php
require_once 'db.php';
class User {
public function getUserById($id) {
$conn = new Db_Conn();
$db = new Db();
}
}

以上只是示意,如果文件不在一個目錄下記得修改路徑。而且,一般來說資料庫對象應該包含連接資料庫和數據操作的全部功能,不需要分別寫在兩個類裡面。我覺得你對面向對象的理解還很淺薄,需要進一步累積經驗。

C. 什麼是資料庫操作類

資料庫操作類是自己寫的一個類,主要功能是對資料庫進行增刪查改。
在其他地方調用這個類中的增刪查改方法即可以操作資料庫。

D. c# 資料庫操作類reader讀取數據的方法

public
static
sqlDataReader
MyReader(string
strSQL)
你可不可把這個函數改成這種
public
static
SqlDataReader
MyReader(string
strSQL,SqlConnection
connection
)
public
static
SqlDataReader
MyReader(string
strSQL,SqlConnection
connection
)
{
SqlCommand
cmd
=
new
SqlCommand(strSQL,
connection);
try
{
connection.Open();
SqlDataReader
myReader
=
cmd.ExecuteReader();
return
myReader;
}
catch
(System.Data.SqlClient.SqlException
e)
{
throw
new
Exception(e.Message);
}
}
然後在
try{
SqlConnection
connection
=
new
SqlConnection(connectionString);
SqlDataReader
reader
=
myData.MyReader(sqlcmd,connection);
if
(reader.Read())
{
sitename.Value
=
reader["sitename"].ToString();
en_sitename.Value
=
reader["en_sitename"].ToString();
company_name.Value
=
reader["company_name"].ToString();
en_company_name.Value
=
reader["en_company_name"].ToString();
company_tel.Value
=
reader["company_tel"].ToString();
company_fax.Value
=
reader["company_fax"].ToString();
}
}catch(){
}finally{
connection.Close();//運行之後再調用finally關閉連接
}

E. 資料庫的基本操作包括什麼

最基本的就是:增、刪、改、查
insert delete update select

F. C#中如何定義資料庫操作類,並調用

以下是我編寫的一個操作access資料庫的類,其他資料庫可以參考修改,原理差不多的。希望對你有幫助。

using System;
using System.Collections.Generic;
using System.Text;
using System.Data.OleDb;
using System.Configuration;
using System.Data;

namespace AutoEmailSender
{
/// <summary>
/// 資料庫交互類
/// </summary>
public class DB
{
/// <summary>
/// 獲得資料庫連接
/// </summary>
/// <returns></returns>
public static OleDbConnection GetDBConnection()
{
return new OleDbConnection(ConfigurationManager.AppSettings["ConnectString"]);
}

/// <summary>
/// 查詢結果集
/// </summary>
/// <param name="sql">執行語句</param>
/// <returns>返回一個DataTable對象</returns>
public static DataTable ExecuteDataTable(string sql)
{
using (OleDbConnection con = GetDBConnection())
{
OleDbCommand cmd = new OleDbCommand(sql, con);
return ExecuteDataTable(cmd);
}
}

/// <summary>
/// 查詢結果集
/// </summary>
/// <param name="cmd">執行語句的OleDbCommand命令</param>
/// <returns>返回一個DataTable對象</returns>
public static DataTable ExecuteDataTable(OleDbCommand cmd)
{
DataSet ds = new DataSet();
using (OleDbDataAdapter da = new OleDbDataAdapter(cmd))
{
try
{
da.Fill(ds);
}
catch (Exception e)
{
throw e;
}
}
if (ds.Tables.Count > 0)
{
ds.Tables[0].DefaultView.RowStateFilter = DataViewRowState.Unchanged | DataViewRowState.Added | DataViewRowState.ModifiedCurrent | DataViewRowState.Deleted;
return ds.Tables[0];
}
else
return null;
}

/// <summary>
/// 執行查詢,並返回查詢所返回的結果集中第一行的第一列。忽略其他列或行。
/// </summary>
/// <param name="sql">查詢語句</param>
/// <returns>返回結果集中第一行的第一列的object值</returns>
public static object ExecuteScalar(string sql)
{
using (OleDbConnection con = GetDBConnection())
{
OleDbCommand cmd = new OleDbCommand(sql, con);
return ExecuteScalar(cmd);
}
}

/// <summary>
/// 執行查詢,並返回查詢所返回的結果集中第一行的第一列。忽略其他列或行。
/// </summary>
/// <param name="cmd">查詢命令</param>
/// <returns>返回結果集中第一行的第一列的object值</returns>
public static object ExecuteScalar(OleDbCommand cmd)
{
try
{
cmd.Connection.Open();
object obj = cmd.ExecuteScalar();
cmd.Connection.Close();
return obj;
}
catch (Exception error)
{
cmd.Connection.Close();
throw error;
}
}

/// <summary>
/// 更新數據集
/// </summary>
/// <param name="dt">要更新的數據集</param>
/// <param name="insertCmd">插入SQL語句</param>
/// <param name="updateCmd">更新SQL語句</param>
/// <param name="deleteCmd">刪除SQL語句</param>
/// <returns></returns>
public static int UpdateDataSet(DataTable dt, OleDbCommand insertCmd, OleDbCommand updateCmd, OleDbCommand deleteCmd)
{
using (OleDbDataAdapter da = new OleDbDataAdapter())
{
da.InsertCommand = insertCmd;
da.UpdateCommand = updateCmd;
da.DeleteCommand = deleteCmd;
//da.UpdateBatchSize = 0; //UpdateBatchSize:指定可在一次批處理中執行的命令的數量,在Access不被支持。0:批大小沒有限制。1:禁用批量更新。>1:更改是使用 UpdateBatchSize 操作的批處理一次性發送的。
da.InsertCommand.UpdatedRowSource = UpdateRowSource.None;
da.UpdateCommand.UpdatedRowSource = UpdateRowSource.None;
da.DeleteCommand.UpdatedRowSource = UpdateRowSource.None;
try
{
int row = da.Update(dt);
return row;
}
catch (Exception e)
{
throw e;
}
}
}

/// <summary>
/// 返回一個查詢語句執行結果的表結構
/// </summary>
/// <param name="sql">查詢語句,不支持復雜SQL</param>
/// <returns></returns>
public static DataTable GetTableSchema(string sql)
{
sql = sql.ToUpper();
DataTable dt = null;
using (OleDbConnection con = GetDBConnection())
{
OleDbCommand cmd = new OleDbCommand(sql, con);
con.Open();
using (OleDbDataReader dr = cmd.ExecuteReader(CommandBehavior.KeyInfo | CommandBehavior.SchemaOnly | CommandBehavior.CloseConnection))
{
dt = dr.GetSchemaTable();
}
}
return dt;
}

/// <summary>
/// 根據輸入的查詢語句自動生成插入,更新,刪除命令
/// </summary>
/// <param name="sql">查詢語句</param>
/// <param name="insertCmd">插入命令</param>
/// <param name="updateCmd">更新命令</param>
/// <param name="deleteCmd">刪除命令</param>
public static void GenerateUpdateSQL(string sql, OleDbCommand insertCmd, OleDbCommand updateCmd, OleDbCommand deleteCmd)
{
sql = sql.ToUpper();
DataTable dt = GetTableSchema(sql);
string tableName = dt.Rows[0]["BaseTableName"].ToString();
List<OleDbParameter> updatePrimarykeys = new List<OleDbParameter>();//主鍵參數集合
List<OleDbParameter> deletePrimarykeys = new List<OleDbParameter>();//主鍵參數集合,因為不能同時被OleDbCommand個命令引用,所以多申明一個
List<OleDbParameter> insertFields = new List<OleDbParameter>();//欄位參數集合
List<OleDbParameter> updateFields = new List<OleDbParameter>();//欄位參數集合
string columns = string.Empty, values = "", set = "", where = "";
foreach (DataRow dr in dt.Rows)
{
if (dr["IsAutoIncrement"].ToString().Equals("False"))
{
insertFields.Add(new OleDbParameter("@" + dr["BaseColumnName"].ToString(),
(OleDbType)dr["ProviderType"],
Convert.ToInt32(dr["ColumnSize"]),
dr["BaseColumnName"].ToString()));
updateFields.Add(new OleDbParameter("@" + dr["BaseColumnName"].ToString(),
(OleDbType)dr["ProviderType"],
Convert.ToInt32(dr["ColumnSize"]),
dr["BaseColumnName"].ToString()));

if (!string.IsNullOrEmpty(columns))
columns += ",";
columns += dr["BaseColumnName"].ToString();
if (!string.IsNullOrEmpty(values))
values += ",";
values += "@" + dr["BaseColumnName"].ToString();
if (!string.IsNullOrEmpty(set))
set += ",";
set += dr["BaseColumnName"].ToString() + "=@" + dr["BaseColumnName"].ToString();
}
if (dr["IsKey"].ToString().Equals("True"))
{
updatePrimarykeys.Add(new OleDbParameter("@OLD_" + dr["BaseColumnName"].ToString(),
(OleDbType)dr["ProviderType"],
Convert.ToInt32(dr["ColumnSize"]),
ParameterDirection.Input,
Convert.ToBoolean(dr["AllowDBNull"]),
Convert.ToByte(dr["NumericScale"]),
Convert.ToByte(dr["NumericPrecision"]),
dr["BaseColumnName"].ToString(), DataRowVersion.Original, null));
deletePrimarykeys.Add(new OleDbParameter("@OLD_" + dr["BaseColumnName"].ToString(),
(OleDbType)dr["ProviderType"],
Convert.ToInt32(dr["ColumnSize"]),
ParameterDirection.Input,
Convert.ToBoolean(dr["AllowDBNull"]),
Convert.ToByte(dr["NumericScale"]),
Convert.ToByte(dr["NumericPrecision"]),
dr["BaseColumnName"].ToString(), DataRowVersion.Original, null));
if (!string.IsNullOrEmpty(where))
where += " and ";
where += dr["BaseColumnName"].ToString() + "=@OLD_" + dr["BaseColumnName"].ToString();
}
}

insertCmd.CommandText = string.Format("insert into {0} ({1}) values ({2})", tableName, columns, values);
updateCmd.CommandText = string.Format("update {0} set {1} where {2}", tableName, set, where);
deleteCmd.CommandText = string.Format("delete from {0} where {1}", tableName, where);
insertCmd.Connection = GetDBConnection();
updateCmd.Connection = GetDBConnection();
deleteCmd.Connection = GetDBConnection();
foreach (OleDbParameter pa in insertFields)
{
insertCmd.Parameters.Add(pa);
}
foreach (OleDbParameter pa in updateFields)
{
updateCmd.Parameters.Add(pa);
}
foreach (OleDbParameter pa in updatePrimarykeys)
{
updateCmd.Parameters.Add(pa);
}
foreach (OleDbParameter pa in deletePrimarykeys)
{
deleteCmd.Parameters.Add(pa);
}
}
}
}

G. SQLite資料庫操作類

SQLite Helper類,基於.net c#的SQLite資料庫操作類SQLite這個精巧的小資料庫,無需安裝軟體,只需要一個System.Data.SQLite.DLL文件即可操作SQLite資料庫。但是據說功能卻非常強大。簡介:SQLite是一個開源資料庫,現在已變得越來越流行,它的體積很小,被廣泛應用於各種不同類型的應用中。SQLite已經是世界上布署得最廣泛的SQL資料庫引擎,被用在無以計數的桌面電腦應用中,還有消費電子設備中,如行動電話、掌上電腦和MP3播放器等。SQLite的源碼就放在公有領域(即WikiPedia的public domain)中。開始使用:Sqliteman,windows下最好的sqlite gui客戶端 sqlite,sqliteman 7.72M

SQLite Administrator 0.8.3.2┊是基於資料庫引擎的管理工具┊漢化綠色特別版 sqlite 1.68M
SQLite,除了access,mysql以外的另外一個輕量級資料庫
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Configuration;
using System.Data;
using System.Data.SQLite;namespace DAL
{
public class Sqlite
{
/// <summary>
/// 獲得連接對象
/// </summary>
/// <returns></returns>
public static SQLiteConnection GetSQLiteConnection()
{
return new SQLiteConnection("Data Source=" + System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["db"].ToString()));
} private static void PrepareCommand(SQLiteCommand cmd, SQLiteConnection conn, string cmdText, params object[] p)
{ if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Parameters.Clear();
cmd.Connection = conn;
cmd.CommandText = cmdText; cmd.CommandType = CommandType.Text;
cmd.CommandTimeout = 30; if (p != null)
{
foreach (object parm in p)
cmd.Parameters.AddWithValue(string.Empty, parm);
//for (int i = 0; i < p.Length; i++)
// cmd.Parameters[i].Value = p[i];
}
} public static DataSet ExecuteDataset(string cmdText, params object[] p)
{
DataSet ds = new DataSet();
SQLiteCommand command = new SQLiteCommand();
using (SQLiteConnection connection = GetSQLiteConnection())
{
PrepareCommand(command, connection, cmdText, p);
SQLiteDataAdapter da = new SQLiteDataAdapter(command);
da.Fill(ds);
} return ds;
} public static DataRow ExecuteDataRow(string cmdText, params object[] p)
{
DataSet ds = ExecuteDataset(cmdText, p);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
return ds.Tables[0].Rows[0];
return null;
} /// <summary>
/// 返回受影響的行數
/// </summary>
/// <param name="cmdText">a</param>
/// <param name="commandParameters">傳入的參數</param>
/// <returns></returns>
public static int ExecuteNonQuery(string cmdText, params object[] p)
{
SQLiteCommand command = new SQLiteCommand(); using (SQLiteConnection connection = GetSQLiteConnection())
{
PrepareCommand(command, connection, cmdText, p);
return command.ExecuteNonQuery();
}
} /// <summary>
/// 返回SqlDataReader對象
/// </summary>
/// <param name="cmdText"></param>
/// <param name="commandParameters">傳入的參數</param>
/// <returns></returns>
public static SQLiteDataReader ExecuteReader(string cmdText, params object[] p)
{
SQLiteCommand command = new SQLiteCommand();
SQLiteConnection connection = GetSQLiteConnection();
try
{
PrepareCommand(command, connection, cmdText, p);
SQLiteDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
catch
{
connection.Close();
throw;
}
} /// <summary>
/// 返回結果集中的第一行第一列,忽略其他行或列
/// </summary>
/// <param name="cmdText"></param>
/// <param name="commandParameters">傳入的參數</param>
/// <returns></returns>
public static object ExecuteScalar(string cmdText, params object[] p)
{
SQLiteCommand cmd = new SQLiteCommand(); using (SQLiteConnection connection = GetSQLiteConnection())
{
PrepareCommand(cmd, connection, cmdText, p);
return cmd.ExecuteScalar();
}
} /// <summary>
/// 分頁
/// </summary>
/// <param name="recordCount"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="cmdText"></param>
/// <param name="countText"></param>
/// <param name="p"></param>
/// <returns></returns>
public static DataSet ExecutePager(ref int recordCount, int pageIndex, int pageSize, string cmdText, string countText, params object[] p)
{
if (recordCount < 0)
recordCount = int.Parse(ExecuteScalar(countText, p).ToString()); DataSet ds = new DataSet(); SQLiteCommand command = new SQLiteCommand();
using (SQLiteConnection connection = GetSQLiteConnection())
{
PrepareCommand(command, connection, cmdText, p);
SQLiteDataAdapter da = new SQLiteDataAdapter(command);
da.Fill(ds, (pageIndex - 1) * pageSize, pageSize, "result");
}
return ds;
}
}
}
以上是我根據SqlHelper、OledbHelper類修改而來。我已經使用過。但是不確定是否完善,因為我對SQLite接觸時間還不長。歡迎大家批評指正。

熱點內容
大華錄像機哪裡有安卓設備 發布:2025-05-15 14:25:06 瀏覽:806
錄制腳本方案 發布:2025-05-15 14:25:04 瀏覽:164
奇石腳本業 發布:2025-05-15 14:23:44 瀏覽:678
android中的socket 發布:2025-05-15 14:22:15 瀏覽:407
apph5源碼 發布:2025-05-15 14:19:51 瀏覽:664
2d游戲按鍵精靈腳本教程 發布:2025-05-15 14:10:15 瀏覽:278
伺服器上的郵件如何銷毀 發布:2025-05-15 14:02:49 瀏覽:137
飢荒安卓版如何解除手柄模式 發布:2025-05-15 14:02:05 瀏覽:112
演算法強化班 發布:2025-05-15 14:02:04 瀏覽:345
c語言編譯後圖片 發布:2025-05-15 13:51:57 瀏覽:792