Извлечение данных из таблицы SQL путем сравнения данных из списка - PullRequest
0 голосов
/ 04 февраля 2012

У меня есть список IDS, скажем 1,2,4,6 в моем LIST (C #), что мне нужно сделать, это извлечь данные, соответствующие этим IDS из моей таблицы Соединения

enter image description here

Мой код LIST следующий:

string str = "SELECT id1 FROM [Example] WHERE id2 = '1' UNION SELECT id2 FROM Example WHERE id1 = '1'";
            ds = new DataSet(str);
            da = new SqlDataAdapter(str, con);
            da.Fill(ds);
            //GridView1.DataSource = ds;
            //GridView1.DataBind();
            DataTable dtDetails = ds.Tables[0];
            List<int> lst =
                                (from dr in dtDetails.AsEnumerable()
                                 select Convert.ToInt32(dr["id1"])).ToList<int>();

Код, приведенный выше, извлекает номера 2 3 4 6 из списка LIST

Что я хочу сделать, это получить id2, соответствующий этим нет, вот и все?

Edit:

 string str = "SELECT id1 FROM [Example] WHERE id2 = '1' UNION SELECT id2 FROM Example WHERE id1 = '1'";
        ds = new DataSet(str);
        da = new SqlDataAdapter(str, con);
        da.Fill(ds);
        DataTable dtDetails = ds.Tables[0];
        List<int> lst =
                            (from dr in dtDetails.AsEnumerable()
                             select Convert.ToInt32(dr["id1"])).ToList<int>();

        foreach (int prime in lst) // Loop through List with foreach
        {

             str1 = " SELECT id2 FROM [Connections] where id2= '"+prime+"'";
            SqlCommand cmd1 = new SqlCommand(str1, con);
            cmd1.ExecuteNonQuery();
            DataSet ds1 = new DataSet();
            SqlDataAdapter da1 = new SqlDataAdapter(str1, con);
            da1.Fill(ds1);
            GridView1.DataSource = ds1;
            GridView1.DataBind();

        }

В моем сеточном представлении ничего не отображается

Ответы [ 2 ]

0 голосов
/ 22 мая 2012

ПОПРОБУЙТЕ ЭТО!

SELECT id2 ОТ примера WHERE id2 IN (SELECT id1 FROM [Example] WHERE id2 = '1' UNION SELECT id2 FROM примера WHERE id1 = '1')

0 голосов
/ 05 февраля 2012

Что вы можете сделать, это использовать IN как часть вашего выбора.Таким образом, оператор выбора, отправляемый на SQL Server, может быть:

SELECT * FROM [Соединения], где id1 IN (1, 2, 4, 6)

В псевдокоде это будет:

string list = "1, 2, 4, 6";string str1 = "SELECT * FROM [Connections], где id1 IN (" + list + ")";

Конечно, в вашем коде вы построите список из списка идентификаторов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...