2012-02-16 2 views
0

Я сделал datagridview, который был подключен к набору данных. В самом наборе данных есть много записей, я проверил; но когда я отлаживаю, сетка не отображает «НИЧЕГО», что раздражает, потому что всего пару дней назад эта моя программа работала нормально. Я не модифицировал какой-либо код или файл. Я просто отрывался от открытия своего проекта на пару дней, и когда я снова открыл его, бум, он не работает так хорошо, как раньше. Вот код, который я использую:My datagridview не отображает данные

System.Data.SqlClient.SqlConnection con; //sweet connection object is created in this here line 
masterDataSet custMaster; //this creates an AWESOME database object 
System.Data.SqlClient.SqlDataAdapter da; //this sets up a data adapter named "da". kewl 
int MaxRows = 0; 
int inc = 0; 

private void Form1_Load(object sender, EventArgs e) 
{ 
    con = new System.Data.SqlClient.SqlConnection(); //name of the sweet connection object above 
    custMaster = new masterDataSet(); 
    con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\master.mdf;Integrated Security=True;User Instance=True"; //this tells windows where to find the database DORA STYLE 
    con.Open(); //this opens up the connection. I DON'T SAY? 
    MessageBox.Show("Database connection has been established succesfully."); 

    string sql = "SELECT * From custMaster"; 
    da = new System.Data.SqlClient.SqlDataAdapter(sql, con); 
    da.Fill(custMaster, "custMaster"); 
    MaxRows = custMaster.Tables["custMaster"].Rows.Count; 
    da.Update(custMaster, "custMaster"); 

    con.Close(); 
} 

затем, для ввода данных, я создал форму со следующим кодом. хотя я уверен, что ошибка не в этой части, я ввожу его в любом случае:

private void newCustbutton1_Click(object sender, EventArgs e) 
{   
    System.Data.SqlClient.SqlCommandBuilder cb; 
    cb = new System.Data.SqlClient.SqlCommandBuilder(da); 

    DataRow dRow = custMaster.Tables["custMaster"].NewRow(); 
    dRow[1] = a_newCust.Text; 
    dRow[2] = b_newCust.Text; 
    dRow[3] = c_newCust.Text; 
    dRow[4] = d_newCust.Text; 
    dRow[5] = e_newCust.Text.ToString(); 
    dRow[6] = f_newCust.Text; 
    dRow[7] = g_newCust.Text.ToString(); 
    if (radioButton1.Checked == true) 
    { 
     dRow[8] = radioButton1.Text; 
    } 
    else if (radioButton2.Checked == true) 
    { 
     dRow[8] = radioButton2.Text; 
    } 

    custMaster.Tables["custMaster"].Rows.Add(dRow); 

    MaxRows = MaxRows + 1; 
    inc = MaxRows - 1;  

    da.Update(custMaster, "custMaster");  

    MessageBox.Show("Customer succesfully added!"); 
} 

Я уверен, что это делать с моими связями. Любая помощь будет замечательной!

+0

Какая ошибка вы получаете ... попытались поставить точку останова и посмотреть, где она на самом деле не работает. – Rahul

+0

безразлично. я починил это. Оказывается, строка подключения была зажата. разве ты не знаешь его? –

ответ

0

1 - Вы пытались установить Integrated Security = SSPI?

2 - MaxRows = custMaster.Tables ["custMaster"]. Rows.Count; попробуйте увидеть, сколько строк ur datatable возвращается?

3 - есть ошибки, которые вы получаете или просто пустые datagrid? вы пытались запустить отладчик?

+0

1-No. но я не понимаю, как это проблема, я не ставил эту строку перед тем, как она и работала. 2-umm, sry но, как именно я это делаю снова? 3-нет ошибок. Я просто запускаю программу, и форма ничего не отображает. –

+0

2 - вы можете сделать это, показывая msgbox (MaxRows) –

+0

nevermind. я починил это. Оказывается, строка подключения была зажата. разве ты не знаешь его? –

0

Я бы прокомментировал, но мой представитель не достаточно высок ... Во всяком случае, у набора данных все еще есть данные, и datagridview показывал данные несколько дней назад, но теперь это не так? Если это так, я не знаю, почему он будет работать несколько дней назад, а теперь это не так, но, возможно, вы можете попробовать обновить datagridview после загрузки набора данных.

+0

да, это точно проблема. я не редактировал никакого кода или не модифицировал какой-либо файл в каталоге и тому подобное. –

+0

Что произойдет, если в конце загрузки вашего набора данных вы вызываете функцию Refresh() 'на вашем dataviewgrid? Мне интересно, может ли datagridview не распознавать загружаемый набор данных, поскольку это происходит в другом потоке, чем создавалось datagridview. Просто теория. – Poosh

+0

безразлично. я починил это. Оказывается, строка подключения была зажата. разве ты не знаешь его? но так как мы в этой теме, обновляющая команда обновит datagrid после того, как я поместил бы в новую запись во время выполнения? я имею в виду, всякий раз, когда я добавляю новую запись во время выполнения, она не обновляет дату-время сразу. я должен закрыть прогон, а затем снова запустить его снова, чтобы увидеть новую запись. просто интересуюсь. –

Смежные вопросы