2013-07-17 6 views
1

Привет, ребята, у меня есть эта SqlDataAdapter, которая находит наибольшее значение:SqlDataAdapter как значение объекта?

DataTable dt = new DataTable();    
SqlDataAdapter SDA = new SqlDataAdapter("Select MAX (ID_K) FROM klient", spojeni); 
SDA.Fill(dt); 


spojeni.Close(); 

Если он выбирает мне нужен свой результат добавления +1 и вставьте его в качестве значения объекта в данном параметре.

prikaz2.Parameters.AddWithValue("@val4",); // here should be SDA +1 

Я попытался вставить в значение объекта весь SqlDataAdapter, но это был вздор. Есть ли способ достичь этого?

Заранее спасибо

+2

'SELECT ...' и 'ExecuteNonQuery'? –

+0

Мой плохой, я отредактировал – Marek

+0

Да, это ерунда. Что заставляет вас думать, что SqlDataAdapter - это число? – catfood

ответ

3

Вы можете использовать SqlCommand.ExecuteScalar() метод для получения этого значения, потому что;

Выполняет запрос и возвращает первый столбец первой строки в результирующий набор, возвращаемый запросом.

Поскольку ваша команда возвращает только максимальное значение столбца ID_K, это именно то, что мы хотим.

SqlCommand command = new SqlCommand("Select MAX (ID_K) FROM klient"); 
SqlDataAdapter SDA = new SqlDataAdapter(command, spojeni); 
int max = (int)command.ExecuteScalar(); 
prikaz2.Parameters.AddWithValue("@val4", max + 1); 
3
int maxID = (int)comm.ExecuteScalar(); 
prikaz2.Parameters.AddWithValue("@val4", maxID + 1);