안녕하세요 여러분, 사전에 감사합니다 !! 일체의 모든 도움을 위해 나는 내가 데이터베이스에 연결하는 윈도우 폼 응용 프로그램을 만드는 중이라서 비주얼 스튜디오 2012를 사용하여 C#데이터베이스의 DataTables를 사용하여 System.IndexOutOfRange 메시지를 가져 오지 않고 시작시 프로그램을 채우십시오
을에서 코딩하고
(4-5개월) 코딩 및 프로그래밍에 대한 절대 초보자입니다 SQL 서버 관리 스튜디오에서
기본적으로 나는 시작할 때 데이터베이스의 데이터로 채워질 필요가있는 두 개의 콤보 상자가 있습니다.
콤보 상자를 채우고 프로그램이 작동하는 방법을 만들었습니다. 100 % 시작시 데이터가 누락되지 않고 모든 행이 콤보 상자에 표시되고 모든 작업이 정확히 수행됩니다. 언제 해야할지 ...
어떻게!
내가 내 프로그램을 실행할 때마다 나는 실제 프로그램을 시작하기 전에 (사용되는 메시지를 생성하는 코드로 5 회) 5 회
System.IndexOutOfRangeException:There is no row at position 0
at System.Data.RBTree1.GetNodeByIndex(Int32 userIndex)
at System.Data.DataRowCollection.get_Item(Int32 index)
이 메시지가 제대로 실행됩니다. ??? (운전 견과류 !!) 여기 내 모든 관련 코드입니다
아래 코드는 내 실제 양식 에서 볼 수 있습니다. 나는 update_combobox()를 사용하고 있습니다. 여기
namespace DB_Program
{
public partial class Form1 : Form
{
DataClass dc = new DataClass();
public Form1()
{
Thread t = new Thread(new ThreadStart(SplashScreen));
t.Start();
Thread.Sleep(5000);
InitializeComponent();
t.Abort();
update_ComboBox();
}
이은을 생성하는 라인입니다 내 메시지에 따라 가능
private void update_ComboBox()
{
DataSet pList = dc.PListPop();
cboBoxPList.DataSource = pList.Tables[0];
cboBoxPList.DisplayMember = "PName";
cboBoxPList.ValueMember = "PName";
DataSet devList = dl.DevListPop();
cboBoxDev.DataSource = devList.Tables[0];
cboBoxDev.DisplayMember = "LName";
cboBoxDev.ValueMember = "LName";
}
public String getDate(String pName)
{
String date = null;
DataTable dTable = new DataTable();
try
{
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter("SelPro", conn);
sda.SelectCommand.CommandType = CommandType.StoredProcedure;
sda.SelectCommand.Parameters.Add("@PName", SqlDbType.VarChar).Value = pName;
sda.Fill(dTable);
date = dTable.Rows[0]["StartDate"].ToString();
}
catch (Exception GSD)
{
string a = GSD.StackTrace.ToString();
MessageBox.Show(GSD.ToString());
}
finally
{
if (conn != null)
{
conn.Close();
}
}
return date;
}
하게 내 양식에서 내 코드입니다 시작에서 initalizeComponent 섹션에 채우는
를 얻을 수 있습니다 첫 번째 메시지는 바로 위의 코드와 관련됩니다.
date = dTable.Rows[0]["StartDate"].ToString();
date = dTable.Rows[0]["PlannedEndDate"].ToString();
FirstName = dTable.Rows[0]["FirstName"].ToString();
Spec = dTable.Rows[0]["Specialty"].ToString();
PID = (int) dTable.Rows[0]["PID"];
제발 제발 누군가 제 좌절 밤을 끝내주십시오. 바다! 프로그램을 그대로두고 그대로 실행해야하는데, 내가하려는 것은 프로그램이 실행될 때마다 실행해야하는 메시지입니다.
다시 한번 감사드립니다!