0 / 0 / 0
Регистрация: 03.01.2010
Сообщений: 42
1

Выбор столбца,если имя столба параметр

18.05.2011, 08:49. Показов 1759. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если таблица с местами,в которых я отмечаю продано место или нет,так вот номер места у меня параметр,логически все должно работать,подскажите плиз где допустил ошибку,если @IDMesta заменить на нужную мне цифру то все ок
C#
1
2
3
4
5
6
7
8
9
myCommand.CommandText = @"UPDATE Места 
                          SET @IDMesta = @Metka
                          WHERE [Номер рейса]=@ReisID";
myCommand.Parameters.Add("@IDMesta", SqlDbType.NChar, 10);
myCommand.Parameters["@IDMesta"].Value =number;
myCommand.Parameters.Add("@Metka", SqlDbType.NChar, 10);
myCommand.Parameters["@Metka"].Value="+";
myCommand.Parameters.Add("@ReisID", SqlDbType.Int, 10);
myCommand.Parameters["@ReisID"].Value = dataGridView1[0, dataGridView1.CurrentCell.RowIndex].Value;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2011, 08:49
Ответы с готовыми решениями:

Как сделать выбор данных одного столбца из нескольких таблиц, если имя этого столбца везде совпадает?
Подскажите, как сделать выбор данных одного столбца из нескольких таблиц, если имя этого столбца...

Как задать имя столбца, если имя - это значение поля другой таблицы?
Доброго времени суток! При вставке нового значения в таблицу1, срабатывает триггер, который...

Деление одного столбца на три столба
Нужно разделить столбец summary нат 3 столбца, но он не делится, подскажите в чем проблема. Вот код

Выбор данных из нескольких таблиц: Неоднозначное имя столбца "Код груза"
Помогите с ошибкой, я делаю выбор данных из нескольких таблиц. SELECT , , , , , , , FROM ., .,...

10
60 / 60 / 11
Регистрация: 30.06.2010
Сообщений: 260
18.05.2011, 09:36 2
ничё не пойму. Проставь в предложении точки. А то все через запятую - как набор однородных членов предложения. Не воспринимается.
0
0 / 0 / 0
Регистрация: 03.01.2010
Сообщений: 42
18.05.2011, 09:45  [ТС] 3
У меня таблица в которой я храню номер рейса и все места которые там есть

[Номер рейса] 1 2 3 4 5 .....
1 NULL + NULL + +
(пробелы не отображаются все поэтому все смещено влево)
Если значение NULL значит билет на это место еще не продан,если + но продан.Так вот для того чтобы пометить что 1 место продано мне нужно отправить запрос к базе данных в котором имя столбца(1,2,3,4,5.....) будет являтся переменной.В моем коде компилятор не на что не жалует но и + в таблицу тоже не добавляет
Надеюсь получилось обьяснить суть проблемы=)
0
60 / 60 / 11
Регистрация: 30.06.2010
Сообщений: 260
18.05.2011, 10:13 4
Код, который привел в начале - это все?
Ну добавил ты параметры. А где запрос на выполнение команды?

Добавлено через 2 минуты
А еще: зачем первая @ в CommandText?
0
0 / 0 / 0
Регистрация: 03.01.2010
Сообщений: 42
18.05.2011, 10:18  [ТС] 5
Выше по коду открываем соединение,ниже закрываем
2 строка запрос на выполнение команды,в остальных описываю все параметры и задаю им значения
первая @ в CommandText влияет только на то чтобы можно было писать SQL запрос в несколько строк,а не все в одну лепить
0
60 / 60 / 11
Регистрация: 30.06.2010
Сообщений: 260
18.05.2011, 10:24 6
Цитата Сообщение от xGravity Посмотреть сообщение
2 строка запрос на выполнение команды
нет, не какую команду ты будешь передавать SQL серверу, а запрос на выполнение твоей команды myCommand?

Добавлено через 42 секунды
типа
C#
1
myCommand.EcecuteNonQuery();
0
0 / 0 / 0
Регистрация: 03.01.2010
Сообщений: 42
18.05.2011, 10:29  [ТС] 7
Цитата Сообщение от Wild Wolf Посмотреть сообщение
нет, не какую команду ты будешь передавать SQL серверу, а запрос на выполнении твоей команды myCommand?

Добавлено через 42 секунды
типа
C#
1
myCommand.EcecuteNonQuery();
Не писал нигде,без него все другие запросы выполняло.Может я чето не догоняю,вот полный код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
            
            SqlConnection conn = new SqlConnection();
            conn.ConnectionString = ConnectionString;
            conn.Open();
            myCommand = conn.CreateCommand();
            myCommand.CommandText = @"UPDATE Места 
                               SET @IDMesta = @Metka
                               WHERE [Номер рейса]=@ReisID";
            myCommand.Parameters.Add("@IDMesta", SqlDbType.NChar, 10);
            myCommand.Parameters["@IDMesta"].Value =number;
            myCommand.Parameters.Add("@Metka", SqlDbType.NChar, 10);
            myCommand.Parameters["@Metka"].Value="+";
            myCommand.Parameters.Add("@ReisID", SqlDbType.Int, 10);
            myCommand.Parameters["@ReisID"].Value = dataGridView1[0, dataGridView1.CurrentCell.RowIndex].Value;
            
            int oK=myCommand.ExecuteNonQuery();
            if (oK == 0)
            {
                MessageBox.Show("Билет небыл продан,проверьте соединение с базой данных", "Касса", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                MessageBox.Show("Билет успешно продан");
            }
0
60 / 60 / 11
Регистрация: 30.06.2010
Сообщений: 260
18.05.2011, 10:31 8
Цитата Сообщение от xGravity Посмотреть сообщение
Не писал нигде
...
C#
1
int oK=myCommand.ExecuteNonQuery();
а это что?
0
0 / 0 / 0
Регистрация: 03.01.2010
Сообщений: 42
18.05.2011, 10:32  [ТС] 9
Добавлено через 42 секунды
типа
C#
1
myCommand.EcecuteNonQuery();
Только сообщение твое увидел начал писать
0
60 / 60 / 11
Регистрация: 30.06.2010
Сообщений: 260
18.05.2011, 10:42 10
Ну с добавлением параметров, с соединением и выполнением команды все, вроде как, в порядке. Значит проблема в SQL запросе. Нельзя передавать имя столбца как параметр: SET @IDMesta = @Metka. Попробуй поменять @IDMesta и напиши, например SET 5 = @Metka. Тогда, теоретически, место 5 будет иметь значение твоей @Metka.
Но для каждого места нужно будет менять CommandText, раз каждый раз ты меняешь новое поле.
C#
1
myCommand.CommandText = "UPDATE Места SET "+ number+" = @Metka WHERE [Номер рейса]=@ReisID";
1
0 / 0 / 0
Регистрация: 03.01.2010
Сообщений: 42
18.05.2011, 10:58  [ТС] 11
Все отлично работает,только нужно еще добавлять [] перед номером,например
SET [5]=@Metka.Спс за помощь
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2011, 10:58
Помогаю со студенческими работами здесь

Проверка если значение столбца hour = 1, то вывести текст, если значение столбца = 0, Как реализовать?
На сайте уже есть регистрация, авторизация. И нужно сделать если у пользователя который...

Если имя не содержит букв «а» или «и», то отобразить данные в формате: имя, отчество
Постановка задачи: в ячейках столбца А рабочего листа Excel сформировать список из 10 пунктов в...

Передать имя файла в переменную, если имя каждый раз уникальное и содержит маску
Добрый день. В виду отсутствия информации в поиске, прошу помочь с вопросом по batch. Как...

имя обьекта как параметр
Здравствуйте. Суть в следующем, есть три comboBox-a с соответствующими именами cmb0, cmb1, cmb2....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru