我有一个非常基本的程序,我正在编写以习惯使用visual studio。该程序的主窗口包含一个名为listBox1的列表框,一个名为richTextBox1的富文本框,以及几个按钮,这些按钮执行各种操作以从名为DocStorage
的表中获取数据,该表具有名为{{1的列存储来自richTextBox1的任何单词作为数据库中的新行。
我设法让保存功能正常工作,它从richTextBox1获取任何文本并将数据库中的存储作为一行,没问题。
现在我需要为DocumentName
和DELETE
按钮编码。 OPEN
按钮应该从SQL Server数据库中删除一条记录,这很简单,但我无法弄清楚如何根据用户推送{{1之前从listBox1中选择的项目来创建它名为DELETE
的按钮。
我还希望能够反向工作DELETE
,根据用户在listBox1中选择的项目,然后在推送名为{{BtnDelete
的按钮之前,将字符串存储回richTextBox1 1}}。
尝试从网上实现类似的例子经过多次尝试证明是不成功的,会在正确的方向上获得一些指导,所以我可以了解编码这些按钮的错误。
我是初学者,所以请原谅我的无知并帮助我完成第一个应用程序的最后两个按钮!
以下是我OPEN
OPEN
提前致谢。
答案 0 :(得分:0)
你走在正确的轨道上 - 还没到那里......
有几件事:
using(....) { .... }
然后在下一行再次创建它 - 从头开始 - 这没有任何意义..... if (MessageBow.Show("Are you sure you want to Delete this File?", "Open File", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
// define connection string (load from config) and query statement
string connStr = ".......";
string qryDelete = "DELETE [DocumentName] FROM DocStorage WHERE DocumentName = @DocShred";
// set up the connection and command
using (SqlConnection con = new SqlConnection(connStr))
using (SqlCommand cmd = new SqlCommand(qryDelete, con))
{
cmd.Parameters.Add(new SqlParameter("@DocShred", listBox1.SelectedItem.ToString());
// open connection, execute query, close connection
con.Open();
int rowsAffected = cmd.ExecuteNonQuery();
con.Close();
}
MessageBox.Show("Delete Successful", "File Deleted", MessageBoxButtons.Ok);
}
块来确保正确处理资源试试这段代码:
DBObject query = new BasicDBObject("ap_domain", "root").append("ssid_shaper_list.SSID2.ssid_domain", "root");
答案 1 :(得分:0)
我运行了这个稍微修改过的版本......
private void BtnDelete_Click(object sender, EventArgs e)
{
string TrashedDoc = listBox1.SelectedItem.ToString();
if (MessageBox.Show("Are you sure you want to Delete this File?", "Delete File", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
string connStr = @"...............";
string qryDelete = "DELETE FROM [DocStorage] WHERE DocumentName = @DocShred";
using (SqlConnection con = new SqlConnection(connStr))
using (SqlCommand cmd = new SqlCommand(qryDelete, con))
{
cmd.Parameters.Add(new SqlParameter("@DocShred", TrashedDoc));
con.Open();
int rowsAffected = cmd.ExecuteNonQuery();
con.Close();
}
/// if the Delete is successful a message box confirms to user
MessageBox.Show("Delete Successful", "File Deleted", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
虽然代码运行正常,但由于某种原因它实际上并没有从数据库中删除列表框中的选定项目,它只是给出了一个Delete Successful消息。刷新数据库确认它没有删除任何内容。