C#处理数据库

本文介绍了C#中处理数据库的方法,包括使用SQLConnection进行SQL操作,掌握事务的提交与回滚,利用SqlBulkCopy类实现批量加载数据,以及如何安全地通过临时表测试数据库操作。此外,还提到了使用OLEDBConnection连接Access数据库,并强调在连接Access时需要将项目配置为x86。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • SQLConnection是SQL专用的

事务的提交与回滚

//读取数据库连接字符串            
string connstr = "server=;database=;uid=;pwd=";
using (SqlConnection conn = new SqlConnection(connstr))
{
    conn.Open();
    //创建一个事务
    SqlTransaction st = conn.BeginTransaction();
    using (SqlCommand cmd = new SqlCommand(sqlstr, conn))
    {
        cmd.Transaction = st;
        try
        {
             cmd.ExecuteNonQuery();
             //提交
             st.Commit();
         }
         catch
         {
              //回滚
              st.Rollback();
         }
    }
}

批量加载数据库,使用SqlBulkCopy类,SqlBulkCopy类官方API

using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn))
{                    
    bulkCopy.DestinationTableName = tablename;    //要插入的表
    bulkCopy.Batc
#if !defined(AFX_CAR_H__85FED81E_252B_4F7D_BCB7_92A9ED40891F__INCLUDED_) #define AFX_CAR_H__85FED81E_252B_4F7D_BCB7_92A9ED40891F__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // Car.h : header file // #include "mapx.h" typedef struct{ char strID[11]; char strName[21]; int nType; StateType nState; double dMapX; double dMapY; double dSpeed; double dDirection; double dX; // 当前位置X坐标 double dY; // 当前位置Y坐标 long lFeaID; // 车辆符号的ID SelectType nSelect; }SCar; class CMapView; ///////////////////////////////////////////////////////////////////////////// // CCar command target class CCar : public CCmdTarget { DECLARE_DYNCREATE(CCar) public: CCar(); // protected constructor used by dynamic creation virtual ~CCar(); // Attributes public: // Operations public: // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CCar) //}}AFX_VIRTUAL // Implementation protected: // Generated message map functions //{{AFX_MSG(CCar) // NOTE - the ClassWizard will add and remove member functions here. //}}AFX_MSG DECLARE_MESSAGE_MAP() protected: CMapStringToPtr m_mapIdToCar; CMapX* m_pMapX; CMapXLayer* m_pLayer; SCar* m_pPick; SCar* m_pLock; UINT m_nSensitivity; BOOL m_bDisplayState; public: CStringArray m_straCarType; BOOL Initialize( CMapX* pMapX, CMapXLayer* pLayer ); void AddFeature( SCar* pCar ); void AddCar( SCar* pCar ); BOOL LoadCars( CString strSelect ); void DeleteFeature( SCar* pCar ); void DeleteCar( SCar* pCar ); BOOL DeleteCars( CString strSelect ); void UpdateFeature( SCar* pCar ); void UpdateCarDB( SCar* pCar ); void UpdateGraph(); SCar* GetCar( double X, double Y ); void Bind(); void UnBind(); UINT GetCarColor( SCar* pCar ); void Pick( SCar* pCar ); UINT UpdateStatus( CString strMapID, const LPBYTE lpData, DWORD dwCount ); UINT UpdateStatus(); void Lock(); void Unlock(); BOOL MotionDetect(); void Flash(); };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值