2013-05-18 3 views
0

Visual Studio 2010 (visual C# 사용)에서 listBox1이라는 listBox가있는 양식이 있습니다. 사용자는 listBox에 표시된 항목 중 하나를 선택하고 저장 버튼을 클릭합니다. 응용 프로그램이 사용하는 데이터베이스로 사용자의 선택을 저장합니다C# listBox.SelectedIndex from Database

cmd.CommandText = "insert into Table2 (kat) values ('"+listBox1.SelectedIndex.ToString()+"')"

예를 그들이 0 또는 1, 2 등으로 저장하는 경우 (편집) ...

을 그리고 나는 응용 프로그램을 사용하려면 그 int 다른 항목 상자와 동일한 항목이지만 다른 양식의 동일한 항목을 선택할 수 있습니다.

내가 지금까지있는 것은 :

cmd.CommandText = "select * from Table1 WHERE username='"+textBox1.Text+"'"; 
           dr = cmd.ExecuteReader(); 
           if (dr.HasRows) 
           { 
            while (dr.Read()) 
            { 
             form1.listBox1.SelectedIndex(dr[0]); 
            } 

           } 

답변

1

당신은 잘못된 길을 Integer으로 값을 추가하려고 다음 데이터베이스에 String로 값을 삽입하고있다

제대로 정수

같은 값을 삽입
cmd.CommandText = "INSERT INTO Table1(kat) VALUES(@id)"; 
cmd.Parameters.AddWithValue("@id", listBox1.SelectedIndex); 
cmd.ExecuteNonQuery(); 

SELECT 쿼리를 사용하여 다른 양식의 listBox 사본을 만들 수 있습니다.

Ex.

cmd.CommandText = "SELECT kat FROM Table1"; 

var reader = cmd.ExecuteReader(); 

while(reader.Read()) 
{ 
    otherListBox.Items.Add(reader[0]); 
} 
reader.Close(); 

목록을 동기화하려면, 데이터베이스에서 읽어도 동안이

int index = listBox1.FindStringExact("id to find"); 

if (index > -1) 
{ 
    listBox1.SelectedIndex = index; 
} 
+0

을 시도, 당신이 사용할 수있는'int.parse (DR [0]로 .toString());'. – Saravanan

+0

값이 STRING이 아닌 INT로 삽입되므로 'Int32.Parse'가 필요 없습니다. –

+0

int 또는 문자열 (편집 됨)로 저장되는지는 상관하지 않습니다. 나는 그들을 검색하는 방법을 모르겠다 – Shevliaskovic