SqlConnection mySqlConnection = new SqlConnection("server=" + server + ";database=master;uid=" + uid + ";pwd=" + pwd);
SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
String sql = "exec master..xp_cmdshell 'del \"" + patch + "\\" + ListBox1.SelectedValue + "\" /q'";String sqlExist = "exec master..xp_fileexist '\"" + patch + "\\" + ListBox1.SelectedValue + "\" /@flag out '";
mySqlCommand.CommandText = sqlExist;
mySqlConnection.Open();
int n = mySqlCommand.ExecuteNonQuery();
mySqlConnection.Close();
if (n != 1)
{
ListBox1.Items.Remove(new ListItem(ListBox1.SelectedValue, ListBox1.SelectedValue));
JavascriptManager.ShowStartupMessageBox(this, "文件不存在!", true);
}
else
{
mySqlCommand.CommandText = sql;
mySqlConnection.Open();
mySqlCommand.ExecuteNonQuery();
mySqlConnection.Close();
ListBox1.Items.Remove(new ListItem(ListBox1.SelectedValue, ListBox1.SelectedValue));
}我要检测文件是否存在,如果不存在就不删除,如果存在就执行删除,我的语句有什么问题?

解决方案 »

  1.   

    首先要把代码整理一下再发上来嘛!SqlConnection mySqlConnection = new SqlConnection("server=" + server + ";database=master;uid=" + uid + ";pwd=" + pwd);
    SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
    String sql = "exec master..xp_cmdshell 'del \"" + patch + "\\" + ListBox1.SelectedValue + "\" /q'";String sqlExist = "exec master..xp_fileexist '\"" + patch + "\\" + ListBox1.SelectedValue + "\" /@flag out '";
    mySqlCommand.CommandText = sqlExist;
    mySqlConnection.Open();
    int n = mySqlCommand.ExecuteNonQuery();
    mySqlConnection.Close();
    if (n != 1)
    {
        ListBox1.Items.Remove(new ListItem(ListBox1.SelectedValue, ListBox1.SelectedValue));
        JavascriptManager.ShowStartupMessageBox(this, "文件不存在!", true);
    }
    else
    {
        mySqlCommand.CommandText = sql;
        mySqlConnection.Open();
        mySqlCommand.ExecuteNonQuery();
        mySqlConnection.Close();
        ListBox1.Items.Remove(new ListItem(ListBox1.SelectedValue, ListBox1.SelectedValue));
    }这个应该是权限的问题,你执行这个存储过程的用户不一定有权限
      

  2.   

    SqlConnection mySqlConnection = “”;//连接
    SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
    //删除
    String sql = "exec master..xp_cmdshell 'del \"" + patch + "\\" + ListBox1.SelectedValue + "\" /q'";
    //检测文件是否存在
    String sqlExist = "exec master..xp_fileexist '\"" + patch + "\\" + ListBox1.SelectedValue + "\" /@flag out '";
    mySqlCommand.CommandText = sqlExist;
    mySqlConnection.Open();
    //返回值,这里的返回值是“@flag”吗?
    int n = mySqlCommand.ExecuteNonQuery();
    mySqlConnection.Close();
    if (n != 1)
    {
    JavascriptManager.ShowStartupMessageBox(this, "文件不存在!", true);
    }
    else
    {
    mySqlCommand.CommandText = sql;
    mySqlConnection.Open();
    mySqlCommand.ExecuteNonQuery();
    mySqlConnection.Close();
    }
    各位大侠帮忙看一下
      

  3.   

    有谁能提示我一下吗,
    我吧mySqlCommand.ExecuteNonQuery();
    改为mySqlCommand.ExecuteScalar()
    也不行,郁闷,应该可以得到返回值吧,
    但是我不知道怎么写。
      

  4.   

    我想了半天最后找到可以返回到一个表中。
    insert   into   #tb   exec   master..xp_fileexist '文件路径'
    不知道这样写对不对?
    #tb是自己创建呢?还是已经再数据库中存在了?