如何更新sqlserver数据库中的数据记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更新sqlserver数据库中的数据记录相关的知识,希望对你有一定的参考价值。

参考技术A

    用数据库工具连接好数据库,便于更方便的去操作数据库!

    请点击输入图片描述

    在对应的数据库中,选择要更新的表,点击鼠标“右键”,选择“设计”!

    请点击输入图片描述

    手动添加一列“CreateTime”表示抓取数据库日期时间的字段。

    请点击输入图片描述

    修改“默认值或绑定”为getdate()

    请点击输入图片描述

    至此数据库中多了一列“CreateTime”,之前如果有数据,里面会是空值是正常的,后续添加的数据就会有创建日期时间了。

    请点击输入图片描述

    后续在应用端传入的数据就能抓到SQL Server主机的日期时间。

    请点击输入图片描述

Xamarin.Forms 中的 sqlite 如何更新本地数据库中的单个记录

【中文标题】Xamarin.Forms 中的 sqlite 如何更新本地数据库中的单个记录【英文标题】:sqlite in Xamarin.Froms how to Update individual record in Local DB 【发布时间】:2021-11-16 12:18:03 【问题描述】:

我正在尝试更新 sqlite 数据库中的单个记录。我知道如何插入和删除记录。我想以与下面删除单个记录类似的方式更新单个记录。这使用 linq 语句按资产 ID 获取记录。然后我想将我的数据传递给它以进行更新。

我还介绍了如何插入新记录以供参考。有没有人可以分享的例子?

删除现有记录

using (SQLiteConnection localconn = new SQLiteConnection(App.FilePath))
         
            localconn.CreateTable<Road_Inspections>();
            localconn.Table<Road_Inspections>().Where(x => x.Unique_ID == unique_ID).Delete();
         

插入新记录

        Road_Inspections lri = new Road_Inspections()
                
                    ID = id,
                    Road_ID = Road_ID.Text.ToString(),
                    Asset_ID = Asset_ID.Text.ToString(),
                    Defect_Type = txtDefectType.Text.ToString(),
                    Response = txtResponse.Text.ToString(),
                    Inspection_Date = DateTime.Now,
                    
                ;

                using (SQLiteConnection conn = new SQLiteConnection(App.FilePath))
                
                    conn.CreateTable<Road_Inspections>();
                    int rowsAdded = conn.Insert(lri);
                    await DisplayAlert("Success", "Inspeciton Saved to Device", "OK");
                

【问题讨论】:

【参考方案1】:

您需要在您的对象声明中使用主要的KeyId 来标识您数据库中的唯一对象,例如:

[PrimaryKey, AutoIncrement]
public int Id  get; set; 

由于您要更新,您必须首先从数据库中获取原始条目。 然后你可以编辑和更新它。因此,您无需在插入新的之前将其删除。

在 xamarin 形式中,您可以使用 nuget sqlite-net-pcl 来实现此目的。

请参考以下代码:

 public Task<int> SaveItemAsync(TodoItem item)
    
        if (item.ID != 0)
        
            return Database.UpdateAsync(item);
        
        else
        
            return Database.InsertAsync(item);
        
    

更多详情,您可以查看:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/data-cloud/data/databases。

上面的文档中有一个示例,您可以在这里查看:https://docs.microsoft.com/en-us/samples/xamarin/xamarin-forms-samples/todo/

【讨论】:

感谢您为我指明正确的方向@Jessie Zhang 你能告诉我如何使用上述框架删除表格。我可以这样做,但更愿意使用上述方法:using (SQLiteConnection conn = new SQLiteConnection(App.FilePath)) conn.DropTable&lt;AssetRegister&gt;();

以上是关于如何更新sqlserver数据库中的数据记录的主要内容,如果未能解决你的问题,请参考以下文章

SqlServer中的更新锁(UPDLOCK)

如何判断mysql数据库的记录已被更新

sqlserver 计算设备运行时长?

如何使用同一组中下一行的数据更新前一条记录

SQLSERVER 同步更新记录

SQLSERVER 同步更新记录