C# 中使用事务的例子

using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;

namespace 事务使用
{
    class Program
    {
        static void Main(string[] args)
        {
            SqlConnection conn = new SqlConnection();
           
            conn.ConnectionString = "server=.;database=check_card_database;user id = sa;password=19790601";
            conn.Open();
            SqlTransaction tran = conn.BeginTransaction();
            try
            {
               
                Console.WriteLine(conn.State.ToString());
                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = "update meter_err_info set err_info='上盖被打开了' where user_code='01022038' and meter_num='20131300'";
                cmd.Connection = conn;
                //SqlTransaction tran = new SqlTransaction();
                cmd.Transaction = tran;
                Console.WriteLine( cmd.ExecuteNonQuery().ToString());
                tran.Commit();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                tran.Rollback();
            }
            finally
            {
                conn.Close();
            }
            Console.ReadLine();
        }
      
    }
}

以下是一个使用IndexedDB存储和查询用户信息的C#示例代码: ```csharp using System; using System.Threading.Tasks; using Microsoft.JSInterop; public class UserInfo { public int Id { get; set; } public string Name { get; set; } public string Email { get; set; } } public class IndexedDBExample { private readonly IJSRuntime _jsRuntime; public IndexedDBExample(IJSRuntime jsRuntime) { _jsRuntime = jsRuntime; } public async Task AddUser(UserInfo user) { var db = await _jsRuntime.InvokeAsync<IDBDatabase>("openDatabase", "userDB", 1); var transaction = db.transaction("users", "readwrite"); var store = transaction.objectStore("users"); var request = store.add(user); await request.AsTask(); } public async Task<UserInfo> GetUser(int id) { var db = await _jsRuntime.InvokeAsync<IDBDatabase>("openDatabase", "userDB", 1); var transaction = db.transaction("users", "readonly"); var store = transaction.objectStore("users"); var request = store.get(id); var result = await request.AsTask(); return result; } } ``` 在这个示例,我们定义了一个`UserInfo`类表示用户信息,然后实现了`AddUser`和`GetUser`方法用于添加和查询用户信息。使用`IJSRuntime`来调用JavaScript的IndexedDB API。通过`openDatabase`方法打开指定名称和版本的数据库,然后使用`transaction`和`objectStore`来获取对象存储空间,并使用`add`和`get`方法来添加和查询数据。 需要注意的是,在使用IndexedDB时需要先在JavaScript定义相应的数据库和对象存储空间,例如: ```javascript const openDatabase = (name, version) => { return new Promise((resolve, reject) => { const request = indexedDB.open(name, version); request.onupgradeneeded = (event) => { const db = event.target.result; const store = db.createObjectStore("users", { keyPath: "id" }); }; request.onsuccess = (event) => { const db = event.target.result; resolve(db); }; request.onerror = (event) => { reject(event.target.error); }; }); }; ``` 这个函数用于打开指定名称和版本的数据库,并在升级时创建名为"users"的对象存储空间。在C#调用时直接使用即可: ```csharp var db = await _jsRuntime.InvokeAsync<IDBDatabase>("openDatabase", "userDB", 1); ``` 该示例仅仅是一个简单的例子,IndexedDB还支持更多的高级功能,例如索引、事务等。需要根据实际需求来选择使用哪些功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值