public void DataList_UpdateCommand(Object sender, DataListCommandEventArgs e)<br /> {<br /> string strName = ((Label)e.Item.FindControl("lblName")).Text;<br /> int intChinese = Int32.Parse(((TextBox)e.Item.FindControl("tbChinese")).Text);<br /> int intMath = Int32.Parse(((TextBox)e.Item.FindControl("tbMath")).Text);<br /> int intEnglish = Int32.Parse(((TextBox)e.Item.FindControl("tbEnglish")).Text);<br /> //更新資料庫中的資料<br /> string strUpdate = "Update Score Set Chinese=@intChinese,Math=@intMath,English=@intEnglish Where Name=@strName";<br /> SqlParameter[] paras = new SqlParameter[10];<br /> paras[0] = new SqlParameter("@strName", SqlDbType.VarChar);<br /> paras[0].Value = strName;</p><p> paras[1] = new SqlParameter("@intChinese", SqlDbType.Int);<br /> paras[1].Value = intChinese;</p><p> paras[2] = new SqlParameter("@intMath", SqlDbType.Int);<br /> paras[2].Value = intMath;</p><p> paras[3] = new SqlParameter("@intEnglish", SqlDbType.Int);<br /> paras[3].Value = intEnglish;</p><p> bool temp = NewsDB.Getcmd(strUpdate, paras);<br /> score.EditItemIndex = -1;<br /> ListBind();<br /> }
一直報錯“SqlParameterCollection 只接受非空的 SqlParameter 類型對象”。
後來將
SqlParameter[] paras = new SqlParameter[10];
改成
SqlParameter[] paras = new SqlParameter[4];
以後解決錯誤。
SqlParameter[] paras = new SqlParameter[10];
是我從別的地方拷貝過來的,而不是自己寫的。現在越來越發現拷貝代碼雖然快,但是往往存在許多連自己都不易發現的錯誤。