我是C#編程新手。我已經創建了一個解決方案,在該解決方案中我已經創建了三個項目。一個項目包含登錄頁面。該項目工作正常,但其他兩個項目中的某些表單不能正常工作。更新語句不起作用,而所有項目中都使用相同的更新語句格式。 任何人都可以給我一個提示,我可能會誤解我嗎?更新聲明不以某種形式工作
if (frmMode == "Update")
{
int RecPos = this.BindingContext[estDataSet, "uoms_v"].Position;
string DsUOMCode = estDataSet.Tables["UOMS_V"].Rows[RecPos]["UOM_Code"].ToString();
string TbUOMCode = this.txtUOMCode.Text;
string SetClause = "";
if (DsUOMCode != TbUOMCode)
{
SetClause = "Set UOM_Code= " + "'" + TbUOMCode + "'";
//pmacsDataSet.Tables["UOMS"].Rows[RecPos]["UOM_Code"] = TbUOMCode;
}
string DsDescp = estDataSet.Tables["UOMS_V"].Rows[RecPos]["Descp"].ToString();
string TbDescp = this.txtDescp.Text;
if (DsDescp != TbDescp)
{
if (SetClause == "")
{
SetClause = "Set Descp= " + "'" + TbDescp + "'";
estDataSet.Tables["UOMS_V"].Rows[RecPos]["Descp"] = TbDescp;
}
else
{
SetClause = SetClause + "," + "Descp= " + "'" + TbDescp + "'";
estDataSet.Tables["UOMS_V"].Rows[RecPos]["Descp"] = TbDescp;
}
}
string DsRemark = estDataSet.Tables["UOMS_V"].Rows[RecPos]["Remark"].ToString();
string TbRemark = this.txtRemark.Text;
if (DsRemark != TbRemark)
{
if (SetClause == "")
{
SetClause = "Set Remark= " + "'" + TbRemark + "'";
estDataSet.Tables["UOMS_V"].Rows[RecPos]["Remark"] = TbRemark;
}
else
{
SetClause = SetClause + "," + "Remark= " + "'" + TbRemark + "'";
estDataSet.Tables["UOMS_V"].Rows[RecPos]["Remark"] = TbRemark;
}
}
if (SetClause == "")
{
MessageBox.Show("There are no changes in field values to be saved");
}
else
{
MySqlConnection conn = new MySqlConnection(connstr);
string UpdStmt = "Update UOMS_V " + SetClause + " WHERE UOM_Code= " + "'" + DsUOMCode + "'";
MySqlCommand cmd = new MySqlCommand(UpdStmt, conn);
try
{
//MessageBox.Show(UpdStmt);
conn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("Record successfully updated");
estDataSet.Tables["UOMS_V"].Clear();
frmQueryMode();
btnSave.Enabled = false;
btnModify.Enabled = false;
btnFind.Enabled = false;
btnDelete.Enabled = false;
btnSearch.Enabled = true;
btnCreate.Enabled = true;
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex);
}
finally
{
conn.Close();
}
}
UOMS是更新工作的形式。在所有其他形式中使用相同的代碼,其中一些形式的綁定上下文值在文本框值發生更改後立即更改!
您可以先告訴我們問題究竟是什麼,或者通過顯示相關代碼開始。 – SLaks
只要文本框值在表單中更改,綁定上下文值就會更改。 –
if(frmMode ==「Update」) { int RecPos = this.BindingContext [estDataSet,「uoms_v」]。Position; string DsUOMCode = estDataSet.Tables [「UOMS_V」]。行[RecPos] [「UOM_Code」]。ToString(); 字符串TbUOMCode = this.txtUOMCode.Text; string SetClause =「」;如果(DsUOMCode!= TbUOMCode) SetClause =「Set UOM_Code =」+「'」+ TbUOMCode +「'」; } 這是我用於更新的代碼的一部分。 –