Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Проблема с параметром в DataAdapter  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
VS 2008. Создаю DataSet. Создаю DataTable с селектом. Добавляю Query.

Select * From myTable Where myField in (@param)

@param = "1,2,3,4,5"

Как объявить этот параметр и затискать туда строку?
26 июл 11, 16:56    [11029654]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с параметром в DataAdapter  [new]
stimpi
Member

Откуда: Киев, Украина
Сообщений: 662
SqlCommand.Parameters.Add(....)
26 июл 11, 17:08    [11029752]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с параметром в DataAdapter  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
stimpi
SqlCommand.Parameters.Add(....)


И что это даст? Оно автоматически создается. Как передать туда то, что я хочу?
26 июл 11, 17:30    [11029926]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с параметром в DataAdapter  [new]
stimpi
Member

Откуда: Киев, Украина
Сообщений: 662
msdn
public void AddSqlParameters() 
{
// ...
// create categoriesDataSet and categoriesAdapter
// ...

  categoriesAdapter.SelectCommand.Parameters.Add(
    "@CategoryName", SqlDbType.VarChar, 80).Value = "toasters";
  categoriesAdapter.SelectCommand.Parameters.Add(
    "@SerialNum", SqlDbType.Int).Value = 239;
  categoriesAdapter.Fill(categoriesDataSet);

}


SqlParameter BOL
26 июл 11, 18:03    [11030123]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с параметром в DataAdapter  [new]
няка
Member

Откуда: из норы
Сообщений: 493
Samir,

а при чем тут дата адаптер?
вы сначала сукель заставьте также отработать, потом адаптеру притензии предьявляйте

курить
26 июл 11, 18:04    [11030132]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с параметром в DataAdapter  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145719
Samir
Select * From myTable Where myField in (@param)

@param = "1,2,3,4,5"

И пойдет на сервер строка

Select * From myTable Where myField in '1,2,3,4,5'
26 июл 11, 18:17    [11030195]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с параметром в DataAdapter  [new]
stimpi
Member

Откуда: Киев, Украина
Сообщений: 662
скуль 2008

using (var con = new SqlConnection("Server=.;Database=;Integrated Security=true"))
          {
              con.Open();

              using (var createType = new SqlCommand("CREATE TYPE MyIds AS TABLE (Id int)"))
              {
                  createType.Connection = con;
                  createType.ExecuteNonQuery();
              }
              using (var com = new SqlCommand("SELECT Id, FirstName FROM People WHERE Id IN (SELECT Id FROM @param)"))
              {
                  com.Connection = con;

                  var dt = new DataTable("Ids");
                  dt.Columns.Add("Id", typeof (int));
                  dt.Rows.Add(1);
                  dt.Rows.Add(2);
                  dt.Rows.Add(3);
                  dt.Rows.Add(4);
                  dt.Rows.Add(5);

                  com.Parameters.AddWithValue("@param", dt);
                  com.Parameters["@param"].TypeName = "MyIds";

                  using (var reader = com.ExecuteReader())
                  {
                      while (reader.Read())
                          Console.WriteLine("{0} {1}", reader["Id"], reader["FirstName"]);
                  }
              }

              using (var createType = new SqlCommand("DROP TYPE MyIds"))
              {
                  createType.Connection = con;
                  createType.ExecuteNonQuery();
              }
          }
26 июл 11, 18:31    [11030258]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с параметром в DataAdapter  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
пользуюсь SQL 2000

еще раз, в результате нужен из

select * from mytable where myfield in (@param)

при @param = "1,2,3,4,5"

получить

select * from mytable where myfield in (1,2,3,4,5)

вопрос все еще открыт

единственный способ, который нашел, это самому ручками создать SqlDataAdapter и
param = "1,2,3,4,5";
SelectCommandText = "select * from mytable where myfield in (" + param + ")";
27 июл 11, 11:43    [11032815]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с параметром в DataAdapter  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145719
Samir
вопрос все еще открыт


Вам же уже написали, что конкретно надо "курить"
няка
Samir,

а при чем тут дата адаптер?
вы сначала сукель заставьте также отработать, потом адаптеру притензии предьявляйте

курить
27 июл 11, 18:09    [11035972]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить