2015-11-13 3 views
0

Существует страница (aspx), в ней есть текстовое поле (Brand auto) и кнопка сохранения.
Необходимо, чтобы , если в Бренде авто (в текстовом поле) пользователь указал следующие обозначения и нажал кнопку для сохранения, должен работать валидатор и не сохранять.CustomValidator при сохранении

I created in a DB the table and procedure with these designations: 
| ID | Name | 
+----+-------+ 
| 1 | %BM% | 
| 2 | %T-3% | 

ALTER PROCEDURE [dbo].[vehicle_select] 
    @mark nvarchar(50) 
AS 
BEGIN 
    SET NOCOUNT ON; 

    if exists 
    (Select Name 
     From ogpo_specialize_vehicle 
     where @mark Like Name) 
     Select 1 as Vle 
    else 
     select 0 as Vle 
END 

Я создал QueriesAdapter.
Код:

protected void Mark_Validate(object source, ServerValidateEventArgs e) 
{ 
(new DataSetVehiclesTableAdapters.QueriesTableAdapter()).ogpo_specialize_vehicle_select(Mark);    
if(dt.VleColumn == 1) 
{ 
    e.IsValid = false; 
} 
    else 
    { 
    e.IsValid = true; 
    }} 

Помощь что писать в состоянии? Условия неправильные

+0

Так в чем ваш вопрос? – MusicLovingIndianGirl

+0

@MusicLovingIndianGirl, я неправильно написал условие – Zhandos

ответ

0

в хранимой процедуре добавить еще один параметр: @Vle int;

Вместо ВЫБРАТЬ 1 как Vle использования Set @VLE = 1 То же самое для 0. В коде позади:

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["YourConnectionName"].ConnectionString; 
SqlCommand cmd = new SqlCommand("procedure_name", con); 
cmd.Parameters.Add("@mark", SqlDbType.NVarChar).Value = your_value; 
cmd.CommandType = CommandType.StoredProcedure; 
con.Open(); 
cmd.ExecuteNonQuery(); 
string result = cmd.Parameters["Vle"].Value.ToString(); 
con.Close(); 
+0

где это условие? – Zhandos

+0

измените ваш запрос в следующем порядке: – Khazratbek

+0

Выберите имя От ogpo_specialize_vehicle где ниже (@mark) Как ниже ('% Name%') – Khazratbek

0

Код:

protected void Mark_ServerValidate(object source, ServerValidateEventArgs args) 
    { 
     DataSetVehicles1TableAdapters.QueriesTableAdapter ds = new DataSetVehicles1TableAdapters.QueriesTableAdapter(); 
     string mark = args.Value; 
     string result = ds.ogpo_specialize_vehicle_select(mark.ToUpper()).ToString(); 
     if (result == "0") 
     { 
      args.IsValid = true; 
     } 
     else 
     { 
      args.IsValid = false; 
     } 
    }