C # Сравнение значений из 2 таблиц в базе данных SQL Server 2005 и отображение в Gridview в VS2005 - PullRequest
0 голосов
/ 11 ноября 2011

Я использую VS2005 C # и базу данных SQL Server 2005.

Я пытаюсь сравнить значения между двумя базами данных.

Я могу получить переменную [StudentName] из таблицы tStudent с помощью инструкции SELECT WHERE sql следующим образом: enter image description here enter image description here

Теперь у меня есть еще одна таблица с именем StudentDetails. Он имеет 3 столбца: StudentName, Address и ContactNum: enter image description here

Ситуация такова, что я хочу получить результат первого запроса SQL на tStudent, который возвращает мне список студентов, чей [Status] = DELETED.

И из списка запрашиваемых студентов я хочу взять по одному студенту за раз и поискать в моей таблице [StudentDetails].

Если он существует в [StudentDetails], я хочу использовать способ хранения переменной [StudentName] из таблицы StudentDetails и отображения ее в GridView на моей веб-странице. (открыть для многих решений здесь. сохранить в базе данных; отобразить результат в GridView; сохранить в массиве; и т. д.)

Могу ли я узнать, какие пути и шаги я могу предпринять для достижения результата?

Пошаговое руководство и фрагменты кода очень ценятся, потому что я довольно слаб в программировании на C #.

Ответы [ 2 ]

1 голос
/ 11 ноября 2011

вы можете сделать так:

  • Используйте Visual Studio для создания имени набора данных StudentDS, создайте имя таблицы «Student» в этом наборе данных, эта таблица будет содержать 3 столбца таблицы: String StudentName; Адрес строки; String ContactNum;
  • Заполнить удаленных студентов в этот набор данных:

DataSet dset = new StudentDS (); String connectionString = ""; // зависит от вашей системы баз данных, см. http://www.connectionstrings.com

        using (connection = new OdbcConnection(connectionString))
        {
            connection.Open();

            command.Connection = connection;
            command.CommandText = "select StudentName, Address, ContactNum from tStudent WHERE status = 'DELETE'";

        OdbcDataAdapter da = new OdbcDataAdapter();
        da.SelectCommand = command;

        da.Fill(dset, "Student");
    }

- После того, как вы получите этот DataSet, вы можете выполнить итерацию по его строке, чтобы сделать то, что вы хотите.

if(dset.Tables[0].Rows != null) {
for (int i = 0; i < dset.Tables[0].Rows.Count, i++){
if(!ExistInStudentDetail(dset.Tables[0].Rows[i]["StudentName"]))
{
dset.Tables[0].Rows.remove(i);
i--;
}
}
}

// здесь, логическое значение ExistInStudentDetail (String StudentName) - это метод, для которого вы можете создать sql, как описано выше.

  • В вашей форме добавьте новое имя DataGridView «StudentForm», добавьте 1 столбец для этого имени DataGridView «StudentName» и установите для его свойства привязки «StudentName» (то же имя столбца в DataSet), а затем установите для этого DataSource сетка. StudentForm.DataSource = dSet;

НТН.

0 голосов
/ 11 ноября 2011

Это довольно простые вопросы, но объем довольно большой. Итак, вот так:

Сначала вы должны убедиться, что у вас есть уникальные столбцы в таблицах, которые вы ищете. Это позволяет вам изменять эти отдельные строки и убедиться, что вы изменяете правильную. На снимке экрана я не увидел ни одного столбца идентификатора, поэтому я просто хотел это охватить.

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

class Student
{
  public string Name { get; private set; }
  public string Address { get; private set; }
  public string ContactNum { get; private set; }
}

вы можете либо использовать конструктор в вышеприведенном классе и заполнить свойства этим, либо вы можете заполнить каждый из них по своему выбору.

В-третьих, я бы создал List<Student> students;, это будет использоваться в качестве вашего списка литературы

List<Student> deletedStudents = SQL Select Statement;

В-четвертых, я бы создал еще один List<Student> detailedStudents;

Наконец, я бы сравнил два списка и затем что-то сделал, когда совпадение найдено.

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