Как я могу выбрать значение из таблицы и сохранить его в переменной?
Привет ребята,
пожалуйста, мне нужна ваша помощь. У меня есть код, который получает максимальное значение из таблицы запросов и сохраняет возвращенное значение в переменную. затем используйте эту переменную с инструкцией insert для сохранения в таблице Vacation, чтобы использовать ее, когда я хочу отобразить запросы. Вот мой код
<pre lang="c#">использование системы;
использование системы.Коллекции.Общий;
использование System.Linq;
использование системы.Сеть;
использование System.Web.UI;
используя системы.Веб.Пользовательского интерфейса.WebControls;
использование System.Data;
используя системы.Данных.Поставщики sqlclient;
использование системы.Конфигурация;
общественный разделяемого класса Vavation : система.Веб.Пользовательского интерфейса.Страницы
{
Dbclass db = новый Dbclass();
строка s = "";
строка d = "";
int R;
string firstVariable = строка.Пустой;
охраняемых недействительными в(объект отправителя, EventArgs в электронной)
{
пробовать
{
если(!IsPostBack)
{
tbid.Text = Session["uid"].Метод toString();
лблдепт.Text = Session["Did"].Метод toString();
lblid.Текст = tbid.Текст;
строка s = "Select * From Employee where National_ID='" + lblid.Текст + "'";
DataTable dt = db.getTable(s);
if (dt != null && dt.строки.Count > 0)
{
tbid.Text = dt.Rows[0]["National_ID"].Метод toString();
tbname.Text = dt.Rows[0]["FirstName"].ToString() + '' + dt.Rows[0]["фамилия"].Метод toString();
лблдепт.Text = dt.Rows[0]["Dept_ID"].Метод toString();
}
строка d = "SELECT Balance FROM Vacation WHERE (National_ID = '" + lblid.Текст + "') и (начальная дата =(выбрать Макс(начальная дата) из отпуска, где (National_ID ='" + lblid.Текст + "'))) И (баланс = (выбрать минимум(остаток) из отпуска, где (National_ID ='" + lblid.Текст + "')))";
DataTable t = db.getTable(d);
if (t != null && t.строки.Count > 0)
{
lbldays.Text = t.Rows[0]["баланс"].Метод toString();
}
}
}
поймать(исключение бывший)
{
лберр.Текст = ex.сообщение;
}
}
охраняемых недействительными btnadd_Click(объект отправителя, EventArgs в электронной)
{
AddVaction();
GetMax();
инт сохранилась = конвертировать.ToInt32(lbldays.Текст);
Начать датавремя = Датавремя.Синтаксический анализ(tbstartvaca.Текст).Дата;
если (сохранилась &ЛТ;= 30 &&усилителя; сохранилась и gt;= 0 &амп;&амп; старт &ГТ;= Датавремя.Сейчас)
{
Сроки remaindate;
DateTime end = Дата-Время.Синтаксический анализ(tbendvaca.Текст).Дата;
Отпуск период = период.Синтаксический анализ(lbldays.Текст);
int Balance = (int)отпуск.TotalDays;
TimeSpan общее;
if (start > end)
{
лберр.Текст = "пожалуйста, проверьте еще раз дату начала";
вернуть;
}
remaindate = конец - начало;
int days = (int)remaindate.TotalDays;
лберр.Текст = "вы ушли с" + remaindate.Всего дней + "дней.";
итого = отпуск - остаток;
int T = (int)итого.TotalDays;
lbldays.Текст = "вы ушли с" + итого.Всего дней + "дней.";
с = "вставить в отпуске (баланс, National_ID, NoOfDays, начальная дата, конечная дата, dept_id, в, Req_date, Req_ID) значения ('" + Т + "', '" + lblid.Текст + "', '" + дни + "', '" + tbstartvaca.Текст + "', '" + tbendvaca.Текст + "', '" + lblDept.Текст + "', '" + Дата-Время.Теперь + "', '" + R + "')";
дБ.Бежать(с);
}
еще
{
лберр.Текст = "у вас нет остатка отпуска или начала отпуска меньше даты Дня ";
}
}
частная пустота GetMax()
{
d = "выберите MAX(Req_ID) из запроса";
lblReq.Текст = d;
DataTable dt = db.getTable(d);
if (dt != null && dt.строки.Count > 0)
{
R = Преобразовать.ToInt32(dt.Rows[0]["Req_ID"].Метод toString());
}
}
частный недействительными AddVaction()
{
s = "вставить в запрос (National_ID, Type_Req, Dept_ID,Date) значения ('" + lblid.Текст + "', 'отпуск','" + lblDept.Текст + "', '" + Дата-Время.Сейчас + "')";
дБ.Бежать(с);
}
}
когда я запускаю код, я получаю Max Req_ID "ноль", хотя код работает без ошибок, и Max Req_ID должен быть последним значением.
пожалуйста, у кого-нибудь есть идея решить эту проблему, помогите мне. Я не знаю, в чем проблема. это в структуре базы данных или в коде.
Что я уже пробовал:
Я перепробовал много кодов, но не смог получить никакой ценности.