Im이 간단한 프로그램을 VB에서 C#로 변환하면 작은 액세스 데이터베이스에서 아이템을 업데이트, 표시, 생성 및 삭제할 수 있습니다. Bellow는 VB의 PopulateListBox() 함수로 데이터 세트의 모든 행을 살펴보고 삭제되거나 삭제되지 않았는지 또는 오류가 있는지 확인합니다. 두 줄에 모두 오류가 표시됩니다. lstAlbums.Items.Add (item); 및 lstAlbums.Items.Add (delitem); 이제 문자열이 할당되지 않았 음을 알게되었습니다. string item = ""; string delitem = "";항목은 목록 상자에 추가되지 않습니다
그러면 프로그램을 시작할 때 목록 상자의 모든 두 번째 항목이 빈 행으로 채워집니다.
이 상황을 어떻게 극복합니까? 어떻게 도와 줄 수있는 사람을 사전에 감사드립니다.
private void PopulateListBox()
{
string item;
string delitem;
//clear the list box
lstAlbums.Items.Clear();
//access each row in the data set table
foreach (DataRow row in myDataSet.Tables["albums"].Rows)
{
//list the nondeleted rows
if (!((row.RowState & DataRowState.Deleted) == DataRowState.Deleted))
item = row["albumCode"] + ", " + row["AlbumTitle"] + ", " + row["ArtistCode"];
//list rows with update errors
if (row.HasErrors)
item = "(**" + row.RowError + "**)";
lstAlbums.Items.Add(item);
//list deleted rows
if ((row.RowState & DataRowState.Deleted) == DataRowState.Deleted)
delitem = row["albumCode", DataRowVersion.Original] + ", "
+ row["AlbumTitle", DataRowVersion.Original] + ", "
+ row["ArtistCode", DataRowVersion.Original] + "***DELETED***";
lstAlbums.Items.Add(delitem);
}
감사합니다. C#에서는 if 문 = 주위에 중괄호가 필요하다는 것을 알지 못했습니다.] – Zac
@Zac : 오신 것을 환영합니다. 명확하게하기 위해 하나의 명령문 만 실행하려는 경우에는 필요하지 않습니다. 여러 문장의 경우 필요합니다. 하나의 문장이 존재하더라도 조건을 정확히 명확히 나타내주기 때문에 항상이 문장을 사용하는 것이 훨씬 깔끔합니다. 그러면 이런 오류가 당신에게 몰래 흘러가는 것을 막을 수 있습니다. –
예. 알겠습니다. 일반적인 실수는 VB에서 C#으로 바뀌지 않고 메모가 전달되지 않는다는 것입니다. 다시 한 번 감사드립니다. – Zac