我想傳遞一個值的數組到一個表對象的數組,以便我可以將它們寫入數據庫。麻煩傳遞值數組到對象數組
我的數據庫看起來是這樣的 - >
tblCaseNotes
CaseNoteID | PersonId |等,等
tblCaseNotesContactType
ROWGUID | CaseNoteID |聯繫方式ID
tblMaintItems
itemID |類別ID
Maint表中的itemID是與當前CaseNoteID一起寫入tblCaseNotesContactType的內容。每個CaseNote可以有多個聯繫人類型。
我至今是價值觀在我btnNew_Click事件產生的CheckListBox ContactType的數組:
// Contact Type check list box
int cTypeCount = chkContactType.CheckedItems.Count;
int [] contactTypes = new int[cTypeCount];
// reusable generic counter for looping thru the check lists
int cMaintCounter = 0;
foreach (int checkedItem in chkContactType.CheckedIndices)
{
contactTypes[cMaintCounter] = (int)chkContactType.GetItemValue(checkedItem);
cMaintCounter++;
}
CurrentCaseNote.AddCNote(Program._CurrentPerson.PersonID, Convert.ToDecimal(tbxTimeSpentUnits.Text), chkIsCaseLog.Checked, Convert.ToDateTime(datContactDate.Text), memContactDetails.Text, contactTypes);
然後我傳遞給我的CurrentCaseNote對象AddCNote方法。
public static void AddCNote(int personID, decimal tsUnits, bool isCaseLog, DateTime cDate, string cDetails, int[] cTypes)
{
var caseNoteToAdd = new tblCaseNote
{
CaseNoteID = Guid.NewGuid(),
PersonID = personID,
TimeSpentUnits =tsUnits,
IsCaseLog =isCaseLog,
ContactDate =cDate,
ContactDetails =cDetails,
InsertDate = DateTime.Now,
InsertUser = Environment.UserName
};
tblCaseNotesContactType[] cTypeToAdd = new tblCaseNotesContactType[cTypes.Length];
cTypeToAdd[0].CaseNoteID = caseNoteToAdd.CaseNoteID;
cTypeToAdd[0].ContactTypeID =cTypes[0];
cTypeToAdd[0].rowguid = Guid.NewGuid();
CaseNoteDAL.addCNote(caseNoteToAdd,cTypeToAdd);
然後將其傳遞給DAL寫入到本地數據庫:
public static void addCNote(tblCaseNote caseNote, tblCaseNotesContactType[] cType)
{
foreach (var type in cType)
{
caseNote.tblCaseNotesContactTypes.Add(type);
}
dcCaseNotes.tblCaseNotes.InsertOnSubmit(caseNote);
//dcCaseNotes.tblCaseNotes.InsertOnSubmit(caseNoteToAdd);
dcCaseNotes.SubmitChanges();
}
這是給我一個的NullReferenceException是在這條線未處理的錯誤 - >cTypeToAdd[0].CaseNoteID = caseNoteToAdd.CaseNoteID;
是因爲我只使用[0]嗎?我只是這樣做來簡化我的測試。當我一步一步通過代碼我的值數組是正確的,並有一個指導caseNoteToAdd.CasNoteID
有人可以給我幾個指針,我要去哪裏錯了,什麼可能會導致錯誤?正如你從我的代碼中可以看出的那樣,我對這一點很陌生,而且我正在學習中。
感謝,
〜p
哇甚至像我一樣的業餘應該已經看到!謝謝! – 2009-04-29 16:14:27