C# ) { MessageBox.Show(“已成功更新”); 选择(); } 其他的 { Show(“更新失败,请重试”); } } 捕获(例外情况除外) { 康涅狄格州关闭(); MessageBox.Show(“更新失败,请重试。错误:+ex.Message”); } } 结果=0; txtName.Text=txtdegate.Text=txtdevice.Text=txtID.Text=txtVAT.Text=null; txtName.Enabled=txtdegate.Enabled=txtdevice.Enabled=txtID.Enabled=txtVAT.Enabled=false; } } }
我正在尝试创建4个按钮:插入、更新、删除和保存,当我单击“保存”时,会出现以下错误: 错误:42601语法错误位于或接近: 我真的不知道是什么C# ) { MessageBox.Show(“已成功更新”); 选择(); } 其他的 { Show(“更新失败,请重试”); } } 捕获(例外情况除外) { 康涅狄格州关闭(); MessageBox.Show(“更新失败,请重试。错误:+ex.Message”); } } 结果=0; txtName.Text=txtdegate.Text=txtdevice.Text=txtID.Text=txtVAT.Text=null; txtName.Enabled=txtdegate.Enabled=txtdevice.Enabled=txtID.Enabled=txtVAT.Enabled=false; } } },c#,postgresql,winforms,C#,Postgresql,Winforms,我正在尝试创建4个按钮:插入、更新、删除和保存,当我单击“保存”时,会出现以下错误: 错误:42601语法错误位于或接近: 我真的不知道是什么 有人能帮我吗?可能是sql语句中的拼写错误“:\u departmento”和添加WithValue时的拼写错误“\u departmento”。未替换参数。不应使用AddWithValue。请参阅:@BjarniRagnarsson我发现了拼写错误,但现在我有了另一个错误:42883,函数docen_registar(text,text,text,te
有人能帮我吗?可能是sql语句中的拼写错误“:\u departmento”和添加WithValue时的拼写错误“\u departmento”。未替换参数。不应使用AddWithValue。请参阅:@BjarniRagnarsson我发现了拼写错误,但现在我有了另一个错误:42883,函数docen_registar(text,text,text,text,text,text)不存在即使选择了所有SQL命令,这如何工作*?函数
docen_registar
必须在数据库中声明/创建。可能是拼写错误,“:\u departmento”在sql语句和“_departmento”中添加WithValue。未替换参数。不应使用AddWithValue。请参阅:@BjarniRagnarsson我发现了拼写错误,但现在我有了另一个错误:42883,函数docen_registar(text,text,text,text,text,text)不存在即使选择了所有SQL命令,这如何工作*?必须在数据库中声明/创建函数docen_registar
。
private void FrmTeachers_Load(object sender, EventArgs e)
{
conn = new NpgsqlConnection(connstring);
Select();
//dgvTabela.Columns["docente_id"].HeaderText = "Teachers ID";
}
private void Select()
{
try
{
conn.Open();
sql = @"select * from docen_selecionar()";
cmd = new NpgsqlCommand(sql, conn);
dt = new DataTable();
dt.Load(cmd.ExecuteReader());
conn.Close();
dgvTabela.DataSource = null;
dgvTabela.DataSource = dt;
}
catch (Exception ex)
{
conn.Close();
MessageBox.Show("Error: " + ex.Message);
}
}
private void DgvTabela_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
txtName.Text = dgvTabela.Rows[e.RowIndex].Cells["_docente_id"].Value.ToString();
txtID.Text = dgvTabela.Rows[e.RowIndex].Cells["_nome_docente"].Value.ToString();
txtVAT.Text = dgvTabela.Rows[e.RowIndex].Cells["_nif_number"].Value.ToString();
txtDepart.Text = dgvTabela.Rows[e.RowIndex].Cells["_departamento"].Value.ToString();
txtDegree.Text = dgvTabela.Rows[e.RowIndex].Cells["_grau_academico"].Value.ToString();
}
}
private void btnRegister_Click(object sender, EventArgs e)
{
rowIndex = -1;
txtName.Enabled = txtDegree.Enabled = txtDepart.Enabled = txtID.Enabled = txtVAT.Enabled = true;
txtName.Text = txtDegree.Text = txtDepart.Text = txtID.Text = txtVAT.Text = null;
txtName.Select();
}
private void btnUpdate_Click(object sender, EventArgs e)
{
if (rowIndex < 0)
{
MessageBox.Show("Please choose a Teacher to update");
return;
}
txtName.Enabled = txtDegree.Enabled = txtDepart.Enabled = txtID.Enabled = txtVAT.Enabled = true;
}
private void btnDelete_Click(object sender, EventArgs e)
{
if (rowIndex < 0)
{
MessageBox.Show("Please choose a Teacher ID to delete");
return;
}
try
{
conn.Open();
sql = @"select * from docen_apagar(:_docente_id)";
cmd = new NpgsqlCommand(sql, conn);
cmd.Parameters.AddWithValue("_docente_id", int.Parse(dgvTabela.Rows[rowIndex].Cells["docente_id"].Value.ToString()));
if ((int)cmd.ExecuteScalar() == 1)
{
MessageBox.Show("Teacher deleted successfully");
rowIndex = -1;
Select();
}
conn.Close();
}
catch (Exception ex)
{
conn.Close();
MessageBox.Show("Delete fail. Please try again. Error:" + ex.Message);
}
}
//save - esqueci-me de alterar o name
private void iconButton1_Click(object sender, EventArgs e)
{
int result = 0;
if (rowIndex < 0) //insert
{
try
{
conn.Open();
sql = @"select * from docen_registar(:_docente_id,:_nome_docente,:_departmento,:_grau_academico,:_nif_number)";
cmd = new NpgsqlCommand(sql, conn);
cmd.Parameters.AddWithValue("_nome_docente", txtName.Text);
cmd.Parameters.AddWithValue("_docente_id", txtID.Text);
cmd.Parameters.AddWithValue("_departamento", txtDepart.Text);
cmd.Parameters.AddWithValue("_grau_academico", txtDegree.Text);
cmd.Parameters.AddWithValue("_nif_number", txtVAT.Text);
result = (int)cmd.ExecuteScalar();
conn.Close();
if (result == 1)
{
MessageBox.Show("Inserted new Teacher successfully");
Select();
}
else
{
MessageBox.Show("Inserted fail");
}
}
catch (Exception ex)
{
conn.Close();
MessageBox.Show("Inserted fail, please try again. Error: " + ex.Message);
}
}
else //update
{
try
{
conn.Open();
sql = @"select * from docen_update(:_docente_id,:_nome_docente,:_departmento,:_grau_academico,:_nif_number)";
cmd = new NpgsqlCommand(sql, conn);
cmd.Parameters.AddWithValue("_docente_id", int.Parse(dgvTabela.Rows[rowIndex].Cells["docente_id"].Value.ToString()));
cmd.Parameters.AddWithValue("_nome_docente", txtName.Text);
cmd.Parameters.AddWithValue("_docente_id", txtID.Text);
cmd.Parameters.AddWithValue("_departamento", txtDepart.Text);
cmd.Parameters.AddWithValue("_grau_academico", txtDegree.Text);
cmd.Parameters.AddWithValue("_nif_number", txtVAT.Text);
result = (int)cmd.ExecuteScalar();
conn.Close();
if (result == 1)
{
MessageBox.Show("Successfully updated");
Select();
}
else
{
MessageBox.Show("Updated fail, please try again.");
}
}
catch (Exception ex)
{
conn.Close();
MessageBox.Show("Updated fail, please try again. Error: " + ex.Message);
}
}
result = 0;
txtName.Text = txtDegree.Text = txtDepart.Text = txtID.Text = txtVAT.Text = null;
txtName.Enabled = txtDegree.Enabled = txtDepart.Enabled = txtID.Enabled = txtVAT.Enabled = false;
}
}
}