Не updating данные в поле int

anesty
Дата: 10.06.2008 12:16:15
Ребята помогите, уже второй день пытаюсь понять в чем проблема. Есть таблица из
ID_customer	uniqueidentifier	Unchecked
ID_department	uniqueidentifier	Unchecked
Last_name	nvarchar(50)	Checked
Status	int	Checked
D_inter	datetime	Unchecked
		
Есть хранимая процедура для апдейта.

ALTER PROCEDURE [dbo].[TestCustomerUpdate]
(
@Original_ID_customer uniqueidentifier,
@ID_department uniqueidentifier,
@Last_name nvarchar(50),
@Status int

)
AS
UPDATE customer_history SET ID_department =@ID_department,Last_name =@Last_name,Status=@Status,D_inter=getdate()
WHERE ID_customer = @Original_ID_customer and D_inter=(select Max(D_inter)from  customer_history WHERE ID_customer=@Original_ID_customer) 
И обработчик
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        c_customTableAdapters.QueriesTableAdapter cus = new c_customTableAdapters.QueriesTableAdapter();
        cus.TestCustomerUpdate(new Guid(GridView1.DataKeys[0].Value.ToString()), new Guid(((TextBox)GridView1.Rows[0].FindControl("TextBox1")).Text.ToString()), ((TextBox)GridView1.Rows[0].FindControl("TextBox2")).Text.ToString(), 
           // ,Convert.ToInt16(((DropDownList)GridView1.Rows[0].FindControl("DropDownList1")).SelectedValue.ToString()));

        Convert.ToInt16(((TextBox)GridView1.Rows[0].FindControl("TextBox3")).Text.ToString()));
        TextBox4.Text = GridView1.DataKeys[0].Value.ToString() + ' ' + ((TextBox)GridView1.Rows[0].FindControl("TextBox1")).Text.ToString() + ' ' + ((TextBox)GridView1.Rows[0].FindControl("TextBox2")).Text.ToString() + ' ' + ((TextBox)GridView1.Rows[0].FindControl("TextBox3")).Text.ToString();
    
    }
апдейтятся все данные кроме поля Status у коготоро тип инт.... в чем может біть проблема?. вівожу в тексбокс данные которые передаются- есть именно значение status , но в базу не пишется. Спасибо. Заранее благодарна
Nisus
Дата: 10.06.2008 12:42:23
ой какая каша, скорее всего чего-то не то туда передается, вообще метод Convert опасен, лучше использовать int.Parse. Попробуйте так как-то для начала
Guid department = new Guid(GridView1.DataKeys[0].Value.ToString());
Guid customer = new Guid(((TextBox)GridView1.Rows[0].FindControl("TextBox1")).Text);
string lastName = ((TextBox)GridView1.Rows[0].FindControl("TextBox2")).Text;
int status = int.Parse(((TextBox)GridView1.Rows[0].FindControl("TextBox3")).Text);
cus.TestCustomerUpdate(department, customer, lastName, status);
Попутно посмотрите под отладчиком правильные ли значения попадают в переменные.
Zorina
Дата: 10.06.2008 12:50:20
посмотрите под дебагером, какие значения передаются в ваш TestCustomerUpdate.
 вообще не понятно почему вы значения текстбоксов из первой строки берете.
кроме того не понятно, почему вы эти значения не из коллекции e.NewValues берете.
пс. int cоответствует int32 а не Int16
______________________________________
http://asp.net/learn/data-access/

Ищи там где потерял, а не там где светло.
мы с вами когда-то где-то уже встречались да, я была уже когда-то где-то.

Zorina
Дата: 10.06.2008 12:51:43
Nisus:
ой какая каша.....

off: мы с тамарой ходим парой....;)
______________________________________
http://asp.net/learn/data-access/

Ищи там где потерял, а не там где светло.
мы с вами когда-то где-то уже встречались да, я была уже когда-то где-то.

Nisus
Дата: 10.06.2008 12:59:36
offtopic 2 Zorina: а что, неплохо получается ;) про нулевую строку я и не заметил, а про NewValues решил не упоминать пока, дабы не усложнять ситуацию
anesty
Дата: 10.06.2008 13:11:33
Nisus
Попутно посмотрите под отладчиком правильные ли значения попадают в переменные.

Данные передаются правильные.тоесть в хранимую процедуру попадает значение. :((
Zorina
Дата: 10.06.2008 13:16:18
ну если вы так уверены в правильности передаваемых данных, нету ли у вас часом triggera на таблице :)
______________________________________
http://asp.net/learn/data-access/

Ищи там где потерял, а не там где светло.
мы с вами когда-то где-то уже встречались да, я была уже когда-то где-то.

anesty
Дата: 10.06.2008 13:27:33
нет нет тригера. самое интересное, что для тектбокса все работает, а для дропдаунлиста- нет.
Zorina
Дата: 10.06.2008 13:35:01
если проблемы у вас с процедурой нету, так значит она в передаваемом значении.
______________________________________
http://asp.net/learn/data-access/

Ищи там где потерял, а не там где светло.
мы с вами когда-то где-то уже встречались да, я была уже когда-то где-то.

Nisus
Дата: 10.06.2008 13:43:24
а вы точно заполняете поле Value у дропдаун листа? Потом конвертите его int.Parse-ом?