У меня есть запрос, который дает мне значение, указанное ниже

protected void CmdUpdate_Click(object sender, EventArgs e)
{
    string query = "select mkey from xxacl_pN_LEASES_ALL where project_id = '" + 
                        ddlProject.SelectedValue + 
                        "' and " +
                        "building_id = '" +
                        ddlBuilding.SelectedValue + 
                        "' and SALES_USER_ID = '" + 
                        ddlSalesUser.SelectedValue + 
                        "'";
}

Теперь я хочу, чтобы если у запроса было какое-то значение, напишите оператор update...., который я знаю. Если этого не произошло, не обновляйте таблицу.

Я хочу, как проверить условие, имеет ли запрос значения или нет?

обновить

Мое заявление об обновлении

Update xxacl_pn_leases_all set ASSIGNED_TO = '' where mkey = query
0
hud 8 Сен 2016 в 13:02

5 ответов

Лучший ответ

Пытаться

Update xxacl_pn_leases_all set ASSIGNED_TO = '' where your_all_condition_here

Например

Update xxacl_pn_leases_all set ASSIGNED_TO = '' where project_id = '" + ddlProject.SelectedValue + "' and "+
                    "building_id = '" + ddlBuilding.SelectedValue + "' and SALES_USER_ID = '" + ddlSalesUser.SelectedValue + "'";

Приведенный выше запрос обновит строки, которые удовлетворяют вашему условию.

Примечание: встроенный запрос не подходит для практики, попробуйте вместо этого использовать запрос параметризации.

3
A_Sk 8 Сен 2016 в 10:16

Вы можете использовать IF EXISTS.. Также очень важно использовать SQL Parameters:

string query = "IF EXISTS (SELECT mkey from xxacl_pN_LEASES_ALL where project_id = @ID AND building_id =@BUILD_ID and SALES_USER_ID =@User_ID) UPDATE xxacl_pN_LEASES_ALL SET .....";
SqlConnection con = new SqlConnection(ConStr);
con.Open();
SqlCommnad cmd = new SqlCommand(query, con);
cmd.Paramaters.AddWithValue("@ID", ddlProject.SelectedValue);
cmd.Paramaters.AddWithValue("@BUILID",ddlBuilding.SelectedValu);
cmd.Paramaters.AddWithValue("@user_ID",ddlSalesUser.SelectedValue);
...
0
apomene 8 Сен 2016 в 10:13

Я бы использовал where exists (select 1 from xxacl_pN_LEASES_ALL where --your query here) Это будет выглядеть примерно так:

Update xxacl_pn_leases_all a set ASSIGNED_TO = '' where exists (select 1 from from xxacl_pN_LEASES_ALL b where a.id=b.id and project_id ....)

Ознакомьтесь с этой документацией.

0
Plirkee 8 Сен 2016 в 10:15
            string _QueryResult = "your query result";

            if (String.IsNullOrEmpty(_QueryResult))
            {
                //Query has no value

            }
            else
            {
                //Query has some value.

            }
0
Krunal Sisodiya 8 Сен 2016 в 10:15

Отредактировано в соответствии с редакцией вопроса ОП.

Метод 1. Внешний интерфейс

protected void CmdUpdate_Click(object sender, EventArgs e)
{
    string query = "select mkey from xxacl_pN_LEASES_ALL where project_id = '" + ddlProject.SelectedValue + "' and "+
                "building_id = '" + ddlBuilding.SelectedValue + "' and SALES_USER_ID = '" + ddlSalesUser.SelectedValue + "'";
    SqlConnection con = new SqlConnection(ConStr);
    con.Open();
    SqlCommnad cmd = new SqlCommand(query, con);
    int mkey = Convert.ToInt32(cmd.ExecuteScalar()); //if mkey is numeric
    if (mkey > 0) 
    {
        //Update execution
        query = "Update xxacl_pn_leases_all set ASSIGNED_TO = '' where mkey = mkey";
        SqlCommnad cmd1 = new SqlCommand(query, con);
        cmd1.ExecuteNonQuery();
    }
    cmd.Dispose();
    cmd1.Dispose();
    con.Close();
}

Метод 2: серверная часть

UPDATE xxacl_pn_leases_all 
   SET ASSIGNED_TO = '' 
   WHERE mkey IN (SELECT mkey FROM xxacl_pN_LEASES_ALL 
                   WHERE project_id = @project_id 
                   AND building_id = @building_id
                   AND SALES_USER_ID = @SALES_USER_ID)

Просто выполните вышеуказанный запрос через свой интерфейсный код.

0
Balagurunathan Marimuthu 8 Сен 2016 в 10:24