我正在开发一个多媒体数据管理系统,我需要使用文本框保存数据库中的任何文件夹位置路径。我通过数据网格视图和数据网格视图检索数据我想单击应该打开的路径和文件夹。那我怎么能这样做呢?
我提供项目视图图片:
private void Save_button1_Click(object sender, EventArgs e)
{
try
{
string movieName = Name_textBox1.Text;
string folderLocation = location_textBox2.Text;
string query = "INSERT INTO movie(Name ,Location ) VALUES('" + movieName + "','" + folderLocation + "')";
op.SaveInformation(query);
op.Load_Table1(dataGridView1);
Name_textBox1.Text= "";
location_textBox2.Text= "";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public void Load_Table1(DataGridView dv)
{
string query = "SELECT * FROM movie;";
SqlConnection Conn = op.create_connection();
SqlCommand cmd = new SqlCommand(query, Conn);
try
{
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
dataset = new DataTable();
sda.Fill(dataset);
BindingSource bSource = new BindingSource();
bSource.DataSource = dataset;
dv.DataSource = bSource;
sda.Update(dataset);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public void SaveInformation(string query)
{
try
{
SqlConnection Conn = create_connection();
SqlCommand cmd = new SqlCommand(query, Conn);
cmd.ExecuteNonQuery();
Conn.Close();
MessageBox.Show("InformationSaved Successfully", "Confirmation", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
答案 0 :(得分:1)
你的代码容易受到sql注入,使用sql参数将值传递给sql查询,
private void Save_button1_Click(object sender, EventArgs e)
{
try
{
string movieName = Name_textBox1.Text;
string folderLocation = location_textBox2.Text;
String query = "INSERT INTO movie(Name ,Location ) VALUES(@movieName,@folderLocation)";
op.Parameters.AddWithValue("@movieName",movieName);
op.Parameters.AddWithValue("@folderLocation",folderLocation);
op.SaveInformation(query);
op.Load_Table1(dataGridView1);
Name_textBox1.Text= "";
location_textBox2.Text= "";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
通过这种方式,您可以使用斜杠或引号存储任何字符串
答案 1 :(得分:0)
这将打开C:\目录。
System.Diagnostics.Process.Start("C:\");
只需指定任何字符串(注意,因为这将运行任何内容,包括Word文档或EXE等文件)。
var varX = "C:\\myfolder\\hello";
System.Diagnostics.Process.Start(varX);
另请注意,在您的数据库中,您的网址无效:C \ x无效。驱动器号后应该有一个冒号(:)。
要在单击单元格后执行此操作并打开文件夹,只需订阅/处理Cell Clicked事件:这是文档(http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellclick(v=vs.110).aspx)。如果您需要帮助,请告诉我。