سلام دوستان عزیز
پروژه ی من طراحی سایت مدرسه به زبان asp.net2008وsql2005
جداول:
جدول درس(کد‘نام‘تعداد‘کد واحد درس)
Dars(codedars,namedars,tededevahed,codevahedars)
جدول کد واحد درس(کد واحد درس‘نام واحد)
Codevahedars(codevahedars,name vahed)
مقادیر جدول:
نظری:1
عملی:2
نظری-عملی:3
جدول اخذ(کد اخذ‘کد دانش آموزی‘کد درس‘نمره‘نیمسال‘اعتراض‘تجدید نظر‘کد ترم‘معدل‘زمان اعلام نمره)
akhz(codeakhz,stcode,codedars,nomre,nimsal,eteraz,tajdidenazar,codeterm,moadel,zamaneelamenomre)
جدول دانش آموز(کد دانش آموزی ‘نام‘شماره کلاس........)
Student(stcode,sh class…..)
جدول کلاس(شماره کلاس و نام)
Class(sh class,name,mahal,tajhizat)
جدول ارائه(کد ارائه‘کد معلم‘کد درس‘روز ارائه‘ساعت ارائه‘شماره کلاس‘کد ترم)
Eraeh(codeeraeh,codemoalem,codedars,day,saat eraeh,sh class,codeterm)
جدول معلم(کد معلم ‘........)
Moalem(codemoalem,…….)
اول معلم وقتی وارد پورتالش میشه که نمره وارد کنه یه dropdownlist گذاشتم که لیست تمام درس هایی که این معلم ارائه میده بیاره
کد:
SELECT eraeh.codedars, dars.namedars FROM moalem INNER JOIN eraeh ON moalem.codemoalem = eraeh.codemoalem INNER JOIN dars ON eraeh.codedars = dars.codedars WHERE (eraeh.codemoalem = @codemoalem) AND (eraeh.codeterm = @p1)
که لیست تمامشو میاره مشکلی نیست
ویه dropdownlist دیگه گذاشتم که لیست تمام کلاس هارو بیاره
کد:
SELECT DISTINCT sh_class FROM eraeh WHERE (codeterm = @p1) AND (codemoalem = @codemoalem)
چون سیستم مدرسه خود دانش آموز اخذ نمیکنه وقتی معلم نمره وارد میکنه اون موقعس که جدول اخذ پر میشه
بعد یه gridview گذاشتم که لیست تمام دانش آموزان بیاره به شرطی شماره کلاس برابر با dropdownlist دومی
کد:
SELECT DISTINCT student.axdanesh, student.stcode FROM class INNER JOIN student ON class.sh_class = student.sh_class WHERE (student.sh_class = @sh_class)
و این gridview را page بندی کردم که معلم صفحه به صفحه جلو بره و نمره وارد کنه برای این کار یه textbox پایین gridview گذاشتم نمره رو که وارد میکنه و باتن درج رو که میزنه نمره درج بشه
کد:
[FONT="]SqlConnection[/FONT][FONT="] con = new SqlConnection();[/FONT]
[FONT="] con.ConnectionString = ConfigurationManager.ConnectionStrings["MYCS"].ConnectionString;[/FONT]
[FONT="] con.Open();[/FONT]
[FONT="] SqlCommand Com = new SqlCommand();[/FONT]
[FONT="] Com.Connection = con;[/FONT]
[FONT="] Com.CommandText = "SELECT akhz.stcode, akhz.codedars, student.sh_class FROM student INNER JOIN akhz ON student.stcode = akhz.stcode INNER JOIN dars ON akhz.codedars = dars.codedars WHERE (akhz.stcode = @stcode) AND (akhz.codedars = @codedars) AND (student.sh_class = @sh_class)";[/FONT]
[FONT="] Com.Parameters.AddWithValue("stcode", GridView1.SelectedValue);[/FONT]
[FONT="] Com.Parameters.AddWithValue("codedars", DropDownList1.SelectedValue);[/FONT]
[FONT="] Com.Parameters.AddWithValue("sh_class", DropDownList2.SelectedValue);[/FONT]
[FONT="] SqlDataReader data;[/FONT]
[FONT="] data = Com.ExecuteReader();[/FONT]
[FONT="] if (!data.Read())[/FONT]
[FONT="] {[/FONT]
[FONT="] [/FONT]
[FONT="] SqlDataSource3.Insert();[/FONT]
[FONT="] }[/FONT]
[FONT="] else[/FONT]
[FONT="] {[/FONT]
[FONT="] Label9.Text = "[/FONT][FONT="]قبلا[/FONT][FONT="] [/FONT][FONT="]وارد[/FONT][FONT="] [/FONT][FONT="]دیتابیس[/FONT][FONT="] [/FONT][FONT="]شده[/FONT][FONT="]"[/FONT][FONT="];[/FONT]
[FONT="] }[/FONT]
[FONT="] }[/FONT]
و اما کد sqldatasource3.insert()
INSERT INTO akhz(stcode, codedars, nomre, nimsal, codeterm, avg, zamaneelamenomre) VALUES (@P1, @P2, @P3, @P4, @P5, @P6, @P7)
P1:gridview.selectedvalue
P2
ropdownlist.selectedvalue
P3:textbox.text
P5
efaultvlue(1)
نمره درج میکنه با اطلاعات دیگه فقط معدل و زمان اعلام نمره مونده که زمان اعلام نمره باید زمان سیستم وارد بشه بعد دانش آموز وقتی login کرد و خواست اعتراض بزنه بهش اخطار بده که ازمان اعتراض گذشته یا نه و از زمان اعلام نمره 10 روز بعدش وقت داره که اعتراض بزنه
و sqldatasource3.insert() مر بوط به sqlgridview
اگه میشه کدی برام بزارین ممنون میشم