Tag: sqlcommandbuilder

ADO.NET CommandBuilder,InsertCommand和Default Constraints

我正在将数据从表A复制到表B.表B有一个可为空的列,其默认约束值为0.通常,我使用以下访问器设置列的值。 public object this[string columnName] { get { return DataTable.Rows[CurrentRow][columnName]; } set { DataTable.Rows[CurrentRow][columnName] = value; } } 但我没有设置我的可空列X. 插入整行时,不使用默认值。 而不是0,为可空列插入了NULL。 _sqlCommandBuilder = new SqlCommandBuilder(_sqlDataAdapter); _sqlCommandBuilder.ConflictOption = ConflictOption.OverwriteChanges; _sqlCommandBuilder.SetAllValues = false; _sqlDataAdapter.Update(DataTable); 我也得到了架构: _sqlDataAdapter.Fill(DataTable); _sqlDataAdapter.FillSchema(_dataTable, SchemaType.Mapped); 为什么我的列X的ADO.NET设置为NULL虽然我没有设置它? 我认为当我没有设置列X的值时,ADO.NET从给定的约束中获取默认值。 ADO.NET CommandBuilder是否能够使用默认约束?

WinForms DataGridView – 更新数据库

我知道这是DataGridView的基本function,但由于某种原因,我无法让它工作。 我只希望Windows窗体上的DataGridView在用户单击“保存”按钮时将对其进行的任何更改提交到数据库。 我根据DropDownList中用户选择触发的函数填充DataGridView,如下所示: using (SqlConnection con = new SqlConnection(conString)) { con.Open(); SqlDataAdapter ruleTableDA = new SqlDataAdapter(“SELECT rule.fldFluteType AS [Flute], rule.fldKnife AS [Knife], rule.fldScore AS [Score], rule.fldLowKnife AS [Low Knife], rule.fldMatrixScore AS [Matrix Score], rule.fldMatrix AS [Matrix] FROM dbo.tblRuleTypes rule WHERE rule.fldMachine_ID = ‘1003’”, con); DataSet ruleTableDS = new DataSet(); ruleTableDA.Fill(ruleTableDS); RuleTable.DataSource = ruleTableDS.Tables[0]; } 在我的保存function中,我基本上有以下内容(我已经修剪了一些代码以便达到目的): […]