c# - 从 CheckBox 检查现有 id、更新或插入值
问题描述
我在更新现有 ID 时遇到了一个小问题,我不知道如何将其引用到C#
using DAPPER
.
我的想法是1 = true, 0 = false
特定月份复选框的值,我进入数据库,目前我总是做 ELSE 块,我如何设置更新 ID?
这是我的代码:
private void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
int _value;
if (checkBox1.Checked)
_value = checkBox1.ImageIndex = 1;
else
_value = checkBox1.ImageIndex = 0;
using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["Zeiterfassung"].ConnectionString))
{
string insertQuery = @"IF EXISTS (SELECT * FROM [dbo].[MONATSSALDO] WHERE [ID]=@ID) //how to refer this id?
UPDATE [dbo].[MONATSSALDO] SET [MA_ID]=@MA_ID, [MONATSSALDO]=@MONATSSALDO, [DATUM]=@DATUM, [MONAT_IST_KONTROLLIERT]=@MONAT_IST_KONTROLLIERT WHERE [ID]=@ID
ELSE
INSERT INTO [dbo].[MONATSSALDO]([ID],[MA_ID], [MONATSSALDO], [DATUM], [MONAT_IST_KONTROLLIERT])
VALUES (@ID, @MA_ID, @MONATSSALDO, @DATUM, @MONAT_IST_KONTROLLIERT)";
var result = db.Execute(insertQuery, new { MA_ID=userID, MONATSSALDO= 4, DATUM = calendar1.CurrentDate, MONAT_IST_KONTROLLIERT = _value });
}
}
这看起来像我在基地的计划
CREATE TABLE [dbo].[MONATSSALDO](
[ID] [int] IDENTITY(1,1) NOT NULL,
[MA_ID] [int] NOT NULL,
[MONATSSALDO] [float] NOT NULL,
[DATUM] [date] NULL,
[MONAT_IST_KONTROLLIERT] [tinyint] NOT NULL,
CONSTRAINT [MONATSSALDO_ID] PRIMARY KEY NONCLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[MONATSSALDO] ADD CONSTRAINT [DF_MONATSSALDO] DEFAULT ((0)) FOR [MONATSSALDO]
GO
ID是Identity,它总是增加1。有可能吗?
解决方案
您可以将 ID 作为参数传递
val = "value";
cnn.Execute("insert into Table(val) values (@val)", new {val});
cnn.Execute("update Table set val = @val where Id = @id", new {val, id = 1});
编辑
首先,您必须选择要更新 id 的对象,您需要知道它是哪一个.. 只有这样您才能对该对象执行更新..
因此,只需将该 ID 作为参数传递..
尝试将属性 ID 添加到 checkBox1 对象并将该属性设置为特定月份的值。因此,当您使用此方法 CheckBox1_CheckedChanged 时,您会获取 ID 的值并将其作为参数传递。
推荐阅读
- php - MySQL - 名称包含特定单词的产品名称
- php - 为什么 each() 不能使用 laravel 与 pluck() 一起工作?
- javascript - 如何在特定滑块中隐藏 CSS 类?
- jquery - 为什么 jQuery ajax 函数在 IOS 浏览器设备中不起作用
- javascript - console.log 闭包的内容
- php - mysqli结果while循环返回null
- swift - 我无法通过协议在视图控制器之间传递数据
- typescript - tsc 不允许我使用 await 关键字进行编译,即使我使用的函数是异步的
- reactjs - typescript.lib/lib.dom.d.ts 中的 HTMLElement 定义被 @types/react/global.d.ts 覆盖
- c - 在Linux中以编程方式运行pdftotext x.pdf y.txt?