Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

При выводе 2 таблиц SQL в DataGridView Логин и пароль дублируются

максим яковлев Профи (826), на голосовании 5 месяцев назад
При выводе 2 таблиц SQL в DataGridView Логин и пароль дублируются и создается сразу 4 строки вместо 2, не могу понять в чём проблема
internal class DB
{
MySqlConnection connection = new MySqlConnection("server=localhost;port=3306;username=st3996_27;password=pwd3996_27;database=db_3996_27_idz");

public void openConnection() {
if(connection.State == System.Data.ConnectionState.Closed)
connection.Open ();


}
public void closeConnection()
{
if (connection.State == System.Data.ConnectionState.Open)
connection.Close();


}

public MySqlConnection getConnection() { return connection; }
}

DB db = new DB();

int selectedRow;

private DataSet dataSet = null;
private void CreateColums()
{
dataGridView1.Columns.Add("id","Код");
dataGridView1.Columns.Add("users.`id auth`", "Код аутентификатора");
dataGridView1.Columns.Add("id post", "Код должности");
dataGridView1.Columns.Add("contract num", "Номер договора");
dataGridView1.Columns.Add("phone num", "Номер телефона");
dataGridView1.Columns.Add("pasport id", "Паспортные данные");
dataGridView1.Columns.Add("emp name", "ФИО");
dataGridView1.Columns.Add("login", "Логин");
dataGridView1.Columns.Add("pass", "Пароль");
dataGridView1.Columns.Add("IsNew",String.Empty);
}
private void ReadSingleRow(DataGridView dgw,IDataRecord record)
{
dgw.Rows.Add(record.GetInt32(0), record.GetInt32(1), record.GetInt32(2), record.GetString(3), record.GetString(4), record.GetString(5), record.GetString(6), record.GetString(8), record.GetString(9),RoWState.ModifiedNew);
}

private void RefreshDataGrid(DataGridView dgw)
{
dgw.Rows.Clear();

string queryString = "select distinct * from users,authorization";

MySqlCommand cmd = new MySqlCommand(queryString, db.getConnection());

db.openConnection();
MySqlDataReader reader = cmd.ExecuteReader();

while ( reader.Read ())
{

ReadSingleRow(dgw,reader);
}
reader.Close();
private void TabUsr_Load(object sender, EventArgs e)
{
CreateColums();
RefreshDataGrid(dataGridView1);
}
}
Создано 2 таблицы users и authorizations, при этом общее у них только id auth (я выбрал
Дополнен 6 месяцев назад
Причину нашел, как починить нет. Запрос select * from users,authorization; выводит в логине и пароле дубль данные, как это исправить?
Голосование за лучший ответ
Jurijus Zaksas Искусственный Интеллект (440568) 6 месяцев назад
Твой запрос возвращает картезианское произведение. Просто не делай так.
Не занимайся шаманизмом, не называй это "выбор двух таблиц", а изучи основы теории множеств и реляционных баз данных на них основанных и подобные вопросы отпадут сами собой.
Похожие вопросы