C#程序設(shè)計(第2版)7-1課件_第1頁
C#程序設(shè)計(第2版)7-1課件_第2頁
C#程序設(shè)計(第2版)7-1課件_第3頁
C#程序設(shè)計(第2版)7-1課件_第4頁
C#程序設(shè)計(第2版)7-1課件_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

單元7綜合應用《C#程序設(shè)計》課程概述單元7綜合應用《C#程序設(shè)計》課程概述1學習內(nèi)容什么是三層架構(gòu)和實體類0102如何搭建三層架構(gòu)學習內(nèi)容什么是三層架構(gòu)和實體類0102如何搭建三層架構(gòu)2目錄頁PAGEOFCONTENT01新建項目02認識項目文件03開始編寫C#代碼04編譯、調(diào)試項目目錄頁PAGEOFCONTENT01新建項目02認識項3知識點名稱根據(jù)自己的需要添加適當?shù)奈淖?,?jù)研究,在幻燈片中,一頁的文字最好不要超過200字根據(jù)需要添加適當?shù)奈淖郑瑩?jù)研究,在幻燈片中,一頁的文字最好不要超過200字根據(jù)自己的需要添加適當?shù)奈淖郑瑩?jù)研究,在幻燈片中,一頁的文字最好不要超過200字根據(jù)自己的需要添加適當?shù)奈淖?,?jù)研究,在幻燈片中,一頁的文字最好不要超過200字添加內(nèi)容添加內(nèi)容添加內(nèi)容添加內(nèi)容知識點名稱根據(jù)自己的需要添加適當?shù)奈淖?,?jù)研究,在幻燈4什么是三層架構(gòu)和實體類01什么是三層架構(gòu)和實體類0151什么是三層架構(gòu)和實體類一種代碼的組織形式,其中包括:表示層(UI)、業(yè)務(wù)邏輯層(BLL)和數(shù)據(jù)訪問層(DAL)1)表示層:為用戶提供交互操作界面,用于顯示和接收用戶提交的數(shù)據(jù),為用戶提供交互式的界面。表示層一般為Windows窗體應用程序或Web應用程序。2)業(yè)務(wù)邏輯層:負責關(guān)鍵業(yè)務(wù)的處理和數(shù)據(jù)的傳遞,不會直接對數(shù)據(jù)庫中的數(shù)據(jù)進行操作,該層一般為類庫。3)數(shù)據(jù)訪問層:負責數(shù)據(jù)庫數(shù)據(jù)的訪問,根據(jù)傳入的值來操作數(shù)據(jù)庫,實現(xiàn)對數(shù)據(jù)的讀取、保存和更新等操作。數(shù)據(jù)訪問層通常為類庫。1什么是三層架構(gòu)和實體類一種代碼的組織形式,其中包括:表示層61什么是三層架構(gòu)和實體類為便于在各層間傳遞數(shù)據(jù),通常再添加一個類庫,即實體類庫。其中封裝的每個類都對應一個實體,即數(shù)據(jù)庫中的一張表。1什么是三層架構(gòu)和實體類為便于在各層間傳遞數(shù)據(jù),通常再添加一7如何搭建三層架構(gòu)02如何搭建三層架構(gòu)028如何搭建三層架構(gòu)2將【例6.8】中顯示表T_Stu學生信息的代碼用三層架構(gòu)來重新進行組織1)創(chuàng)建表示層2)創(chuàng)建業(yè)務(wù)邏輯層3)創(chuàng)建數(shù)據(jù)訪問層4)創(chuàng)建實體類5)添加各層之間依賴關(guān)系如何搭建三層架構(gòu)2將【例6.8】中顯示表T_Stu學生信息的9如何搭建三層架構(gòu)2添加代碼1)在實體類庫定義類Student2)在數(shù)據(jù)訪問層定義數(shù)據(jù)庫操作類DBHelper3)在數(shù)據(jù)訪問層定義數(shù)據(jù)訪問類StuService4)在業(yè)務(wù)邏輯層定義類StuManager5)編寫表示層如何搭建三層架構(gòu)2添加代碼10單元7綜合應用《C#程序設(shè)計》課程基于三層架構(gòu)操作數(shù)據(jù)單元7綜合應用《C#程序設(shè)計》課程基于三層架構(gòu)操作數(shù)據(jù)11學習內(nèi)容什么是三層架構(gòu)和實體類0102如何搭建三層架構(gòu)學習內(nèi)容什么是三層架構(gòu)和實體類0102如何搭建三層架構(gòu)12目錄頁PAGEOFCONTENT01實現(xiàn)學生信息的添加02實現(xiàn)學生信息的修改03實現(xiàn)學生信息的刪除目錄頁PAGEOFCONTENT01實現(xiàn)學生信息的添加13知識點名稱根據(jù)自己的需要添加適當?shù)奈淖?,?jù)研究,在幻燈片中,一頁的文字最好不要超過200字根據(jù)需要添加適當?shù)奈淖?,?jù)研究,在幻燈片中,一頁的文字最好不要超過200字根據(jù)自己的需要添加適當?shù)奈淖?,?jù)研究,在幻燈片中,一頁的文字最好不要超過200字根據(jù)自己的需要添加適當?shù)奈淖?,?jù)研究,在幻燈片中,一頁的文字最好不要超過200字添加內(nèi)容添加內(nèi)容添加內(nèi)容添加內(nèi)容知識點名稱根據(jù)自己的需要添加適當?shù)奈淖郑瑩?jù)研究,在幻燈14實現(xiàn)學生信息的添加01實現(xiàn)學生信息的添加0115實現(xiàn)學生信息的添加1(1)在數(shù)據(jù)訪問層類StuService中添加AddStudent方法public

boolAddStudent(StudentnewStu)

{

stringsqlStr="insertintoT_Stuvalues(@ID,@name,@age)";

SqlParameter[]param=new

SqlParameter[]{

new

SqlParameter("@ID",newStu.ID),

new

SqlParameter("@name",newStu.Name),

new

SqlParameter("@age",newStu.Age)};

return

DBHelper.ExcuteCommand(sqlStr,param);}實現(xiàn)學生信息的添加1(1)在數(shù)據(jù)訪問層類StuService16實現(xiàn)學生信息的添加(2)在業(yè)務(wù)邏輯層類StuManager中添加AddStudent方法

public

boolAddStudent(StudentnewStu){

returnstu.AddStudent(newStu);}1實現(xiàn)學生信息的添加(2)在業(yè)務(wù)邏輯層類StuManager中17實現(xiàn)學生信息的添加(3)在表示層獲取輸入的學生信息

private

voidbtnAdd_Click(objectsender,EventArgse){

StudentnewStu=new

Student();newStu.ID=int.Parse(txtID.Text);newStu.Name=txtName.Text;newStu.Age=int.Parse(txtAge.Text);

if(stu.AddStudent(newStu)){

MessageBox.Show("添加成功");dataGridView1.DataSource=stu.GetStudentList();}

else

MessageBox.Show("添加失敗");}1實現(xiàn)學生信息的添加(3)在表示層獲取輸入的學生信息118實現(xiàn)學生信息的修改02實現(xiàn)學生信息的修改0219實現(xiàn)學生信息的修改2(1)在數(shù)據(jù)訪問層類StuService中添加UpdateStudent方法

public

boolUpdateStudent(Studentstu){

stringsqlstr="updateT_Stusetname=@name,age=@agewhereID=@id";

SqlParameter[]param=new

SqlParameter[]{

new

SqlParameter("@name",stu.Name),

new

SqlParameter("@age",stu.Age),

new

SqlParameter("@ID",stu.ID)};

return

DBHelper.ExcuteCommand(sqlstr,param);}實現(xiàn)學生信息的修改2(1)在數(shù)據(jù)訪問層類StuService20實現(xiàn)學生信息的修改2(2)在業(yè)務(wù)邏輯層類StuManager中添加UpdateStudent方法

public

boolUpdateStudent(Students){

returnstu.UpdateStudent(s);}實現(xiàn)學生信息的修改2(2)在業(yè)務(wù)邏輯層類StuManager21實現(xiàn)學生信息的修改2(3)在表示層獲取要修改的學生信息private

voiddataGridView1_CellClick(objectsender,DataGridViewCellEventArgse){

if(dataGridView1.SelectedRows.Count<=0) {

MessageBox.Show("請選中一行進行操作");

return;}txtID.Text=dataGridView1.SelectedRows[0].Cells[0].Value.ToString();txtName.Text=dataGridView1.SelectedRows[0].Cells[1].Value.ToString();txtAge.Text=dataGridView1.SelectedRows[0].Cells[2].Value.ToString();}

private

voidbtnUpdate_Click(objectsender,EventArgse){

if(dataGridView1.SelectedRows.Count<=0) {

MessageBox.Show("請選中一行進行操作");

return;}

StudentnewStu=new

Student();newStu.ID=int.Parse(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());newStu.Name=txtName.Text;newStu.Age=int.Parse(txtAge.Text);

//保存修改

if(stu.UpdateStudent(newStu)){

MessageBox.Show("修改成功");dataGridView1.DataSource=stu.GetStudentList();}

else

MessageBox.Show("修改失敗");}實現(xiàn)學生信息的修改2(3)在表示層獲取要修改的學生信息22實現(xiàn)學生信息的刪除03實現(xiàn)學生信息的刪除0323實現(xiàn)學生信息的刪除3(1)在數(shù)據(jù)訪問層類DBHelper中添加ExcuteCommand方法的重載public

static

boolExcuteCommand(List<String>sqlStr,List<SqlParameter[]>param){

inti=0;SqlCommandcmd=new

SqlCommand();

using(TransactionScopets=new

TransactionScope()){cmd.Connection=conn;conn.Open();

try{

foreach(stringiteminsqlStr){cmd.CommandType=CommandType.Text; cmd.CommandText=item;

cmd.Parameters.AddRange(param[i]); //添加參數(shù)cmd.ExecuteNonQuery(); //執(zhí)行SQL語句并返回受影響的行數(shù)

i++;

}ts.Complete();

return

true;}

catch{return

false;}

finally{conn.Close();sqlStr.Clear();}}}實現(xiàn)學生信息的刪除3(1)在數(shù)據(jù)訪問層類DBHelper中添24(2)在數(shù)據(jù)訪問層類StuService中添加DelStudent方法public

boolDelStudent(intid){

List<String>strSqls=new

List<string>(); //創(chuàng)建集合對象

List<SqlParameter[]>param=new

List<SqlParameter[]>();

stringstrDelete1="deleteFromT_StuwhereID=@id"; //定義刪除表T_Stu的SQL語句strSqls.Add(strDelete1); //將SQL語句添加到集合中

SqlParameter[]param1=new

SqlParameter[]{

new

SqlParameter("@ID",id)};param.Add(param1);

stringstrDelete2="deleteFromT_SCwhereSno=@sno"; //定義刪除表T_SC的SQL語句strSqls.Add(strDelete2); //將SQL語句添加到集合中

SqlParameter[]param2=new

SqlParameter[]{

new

SqlParameter("@sno",id)};param.Add(param2);

return

DBHelper.ExcuteCommand(strSqls,param);}實現(xiàn)學生信息的刪除3(2)在數(shù)據(jù)訪問層類StuService中添加DelStud25(3)在業(yè)務(wù)邏輯層類StuManager中添加DelStudent方法public

boolDelStudent(intid){

returnstu.DelStudent(id);}實現(xiàn)學生信息的刪除3(3)在業(yè)務(wù)邏輯層類StuManager中添加DelStud26(4)在表示層獲取待刪除學生的學號private

voidbtnDel_Click(objectsender,EventArgse){

intid;

if(dataGridView1.SelectedRows.Count<=0) {

MessageBox.Show("請選中一行進行操作");

return;}id=int.Parse(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());

if(stu.DelStudent(id)){

MessageBox.Show("刪除成功");dataGridView1.DataSource=stu.GetStudentList();txtID.Text="";txtName.Text="";txtAge.Text="";}

else

MessageBox.Show("刪除失敗");}實現(xiàn)學生信息的刪除3(4)在表示層獲取待刪除學生的學號實現(xiàn)學生信息的刪除327謝謝學習謝謝學習28單元7綜合應用《C#程序設(shè)計》課程概述單元7綜合應用《C#程序設(shè)計》課程概述29學習內(nèi)容什么是三層架構(gòu)和實體類0102如何搭建三層架構(gòu)學習內(nèi)容什么是三層架構(gòu)和實體類0102如何搭建三層架構(gòu)30目錄頁PAGEOFCONTENT01新建項目02認識項目文件03開始編寫C#代碼04編譯、調(diào)試項目目錄頁PAGEOFCONTENT01新建項目02認識項31知識點名稱根據(jù)自己的需要添加適當?shù)奈淖?,?jù)研究,在幻燈片中,一頁的文字最好不要超過200字根據(jù)需要添加適當?shù)奈淖郑瑩?jù)研究,在幻燈片中,一頁的文字最好不要超過200字根據(jù)自己的需要添加適當?shù)奈淖郑瑩?jù)研究,在幻燈片中,一頁的文字最好不要超過200字根據(jù)自己的需要添加適當?shù)奈淖郑瑩?jù)研究,在幻燈片中,一頁的文字最好不要超過200字添加內(nèi)容添加內(nèi)容添加內(nèi)容添加內(nèi)容知識點名稱根據(jù)自己的需要添加適當?shù)奈淖?,?jù)研究,在幻燈32什么是三層架構(gòu)和實體類01什么是三層架構(gòu)和實體類01331什么是三層架構(gòu)和實體類一種代碼的組織形式,其中包括:表示層(UI)、業(yè)務(wù)邏輯層(BLL)和數(shù)據(jù)訪問層(DAL)1)表示層:為用戶提供交互操作界面,用于顯示和接收用戶提交的數(shù)據(jù),為用戶提供交互式的界面。表示層一般為Windows窗體應用程序或Web應用程序。2)業(yè)務(wù)邏輯層:負責關(guān)鍵業(yè)務(wù)的處理和數(shù)據(jù)的傳遞,不會直接對數(shù)據(jù)庫中的數(shù)據(jù)進行操作,該層一般為類庫。3)數(shù)據(jù)訪問層:負責數(shù)據(jù)庫數(shù)據(jù)的訪問,根據(jù)傳入的值來操作數(shù)據(jù)庫,實現(xiàn)對數(shù)據(jù)的讀取、保存和更新等操作。數(shù)據(jù)訪問層通常為類庫。1什么是三層架構(gòu)和實體類一種代碼的組織形式,其中包括:表示層341什么是三層架構(gòu)和實體類為便于在各層間傳遞數(shù)據(jù),通常再添加一個類庫,即實體類庫。其中封裝的每個類都對應一個實體,即數(shù)據(jù)庫中的一張表。1什么是三層架構(gòu)和實體類為便于在各層間傳遞數(shù)據(jù),通常再添加一35如何搭建三層架構(gòu)02如何搭建三層架構(gòu)0236如何搭建三層架構(gòu)2將【例6.8】中顯示表T_Stu學生信息的代碼用三層架構(gòu)來重新進行組織1)創(chuàng)建表示層2)創(chuàng)建業(yè)務(wù)邏輯層3)創(chuàng)建數(shù)據(jù)訪問層4)創(chuàng)建實體類5)添加各層之間依賴關(guān)系如何搭建三層架構(gòu)2將【例6.8】中顯示表T_Stu學生信息的37如何搭建三層架構(gòu)2添加代碼1)在實體類庫定義類Student2)在數(shù)據(jù)訪問層定義數(shù)據(jù)庫操作類DBHelper3)在數(shù)據(jù)訪問層定義數(shù)據(jù)訪問類StuService4)在業(yè)務(wù)邏輯層定義類StuManager5)編寫表示層如何搭建三層架構(gòu)2添加代碼38單元7綜合應用《C#程序設(shè)計》課程基于三層架構(gòu)操作數(shù)據(jù)單元7綜合應用《C#程序設(shè)計》課程基于三層架構(gòu)操作數(shù)據(jù)39學習內(nèi)容什么是三層架構(gòu)和實體類0102如何搭建三層架構(gòu)學習內(nèi)容什么是三層架構(gòu)和實體類0102如何搭建三層架構(gòu)40目錄頁PAGEOFCONTENT01實現(xiàn)學生信息的添加02實現(xiàn)學生信息的修改03實現(xiàn)學生信息的刪除目錄頁PAGEOFCONTENT01實現(xiàn)學生信息的添加41知識點名稱根據(jù)自己的需要添加適當?shù)奈淖?,?jù)研究,在幻燈片中,一頁的文字最好不要超過200字根據(jù)需要添加適當?shù)奈淖郑瑩?jù)研究,在幻燈片中,一頁的文字最好不要超過200字根據(jù)自己的需要添加適當?shù)奈淖?,?jù)研究,在幻燈片中,一頁的文字最好不要超過200字根據(jù)自己的需要添加適當?shù)奈淖?,?jù)研究,在幻燈片中,一頁的文字最好不要超過200字添加內(nèi)容添加內(nèi)容添加內(nèi)容添加內(nèi)容知識點名稱根據(jù)自己的需要添加適當?shù)奈淖郑瑩?jù)研究,在幻燈42實現(xiàn)學生信息的添加01實現(xiàn)學生信息的添加0143實現(xiàn)學生信息的添加1(1)在數(shù)據(jù)訪問層類StuService中添加AddStudent方法public

boolAddStudent(StudentnewStu)

{

stringsqlStr="insertintoT_Stuvalues(@ID,@name,@age)";

SqlParameter[]param=new

SqlParameter[]{

new

SqlParameter("@ID",newStu.ID),

new

SqlParameter("@name",newStu.Name),

new

SqlParameter("@age",newStu.Age)};

return

DBHelper.ExcuteCommand(sqlStr,param);}實現(xiàn)學生信息的添加1(1)在數(shù)據(jù)訪問層類StuService44實現(xiàn)學生信息的添加(2)在業(yè)務(wù)邏輯層類StuManager中添加AddStudent方法

public

boolAddStudent(StudentnewStu){

returnstu.AddStudent(newStu);}1實現(xiàn)學生信息的添加(2)在業(yè)務(wù)邏輯層類StuManager中45實現(xiàn)學生信息的添加(3)在表示層獲取輸入的學生信息

private

voidbtnAdd_Click(objectsender,EventArgse){

StudentnewStu=new

Student();newStu.ID=int.Parse(txtID.Text);newStu.Name=txtName.Text;newStu.Age=int.Parse(txtAge.Text);

if(stu.AddStudent(newStu)){

MessageBox.Show("添加成功");dataGridView1.DataSource=stu.GetStudentList();}

else

MessageBox.Show("添加失敗");}1實現(xiàn)學生信息的添加(3)在表示層獲取輸入的學生信息146實現(xiàn)學生信息的修改02實現(xiàn)學生信息的修改0247實現(xiàn)學生信息的修改2(1)在數(shù)據(jù)訪問層類StuService中添加UpdateStudent方法

public

boolUpdateStudent(Studentstu){

stringsqlstr="updateT_Stusetname=@name,age=@agewhereID=@id";

SqlParameter[]param=new

SqlParameter[]{

new

SqlParameter("@name",stu.Name),

new

SqlParameter("@age",stu.Age),

new

SqlParameter("@ID",stu.ID)};

return

DBHelper.ExcuteCommand(sqlstr,param);}實現(xiàn)學生信息的修改2(1)在數(shù)據(jù)訪問層類StuService48實現(xiàn)學生信息的修改2(2)在業(yè)務(wù)邏輯層類StuManager中添加UpdateStudent方法

public

boolUpdateStudent(Students){

returnstu.UpdateStudent(s);}實現(xiàn)學生信息的修改2(2)在業(yè)務(wù)邏輯層類StuManager49實現(xiàn)學生信息的修改2(3)在表示層獲取要修改的學生信息private

voiddataGridView1_CellClick(objectsender,DataGridViewCellEventArgse){

if(dataGridView1.SelectedRows.Count<=0) {

MessageBox.Show("請選中一行進行操作");

return;}txtID.Text=dataGridView1.SelectedRows[0].Cells[0].Value.ToString();txtName.Text=dataGridView1.SelectedRows[0].Cells[1].Value.ToString();txtAge.Text=dataGridView1.SelectedRows[0].Cells[2].Value.ToString();}

private

voidbtnUpdate_Click(objectsender,EventArgse){

if(dataGridView1.SelectedRows.Count<=0) {

MessageBox.Show("請選中一行進行操作");

return;}

StudentnewStu=new

Student();newStu.ID=int.Parse(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());newStu.Name=txtName.Text;newStu.Age=int.Parse(txtAge.Text);

//保存修改

if(stu.UpdateStudent(newStu)){

MessageBox.Show("修改成功");dataGridView1.DataSource=stu.GetStudentList();}

else

MessageBox.Show("修改失敗");}實現(xiàn)學生信息的修改2(3)在表示層獲取要修改的學生信息50實現(xiàn)學生信息的刪除03實現(xiàn)學生信息的刪除0351實現(xiàn)學生信息的刪除3(1)在數(shù)據(jù)訪問層類DBHelper中添加ExcuteCommand方法的重載public

static

boolExcuteCommand(List<String>sqlStr,List<SqlParameter[]>param){

inti=0;SqlCommandcmd=new

SqlCommand();

using(TransactionScopets=new

TransactionScope()){cmd.Connection=conn;conn.Open();

try{

foreach(stringiteminsqlStr){cmd.CommandType=CommandType.Text; cmd.CommandText=item;

cmd.Parameters.AddRange(param[i]); //添加參數(shù)cmd.ExecuteNonQuery(); //執(zhí)行SQL語句并返回受影響的行數(shù)

i++;

}ts.Complete();

return

true;}

catch{return

false;}

finally{conn.Close();sqlStr.Clear();}}}實現(xiàn)學生信息的刪除3(1)在數(shù)據(jù)訪問層類DBHelper中添52(2)在數(shù)據(jù)訪問層類StuService中添加DelStudent方法public

boolDelStudent(intid){

List<String>strSqls=new

List<string>(); //創(chuàng)建集合對象

List<SqlParameter[]>param=new

List<SqlParameter[]>();

stringstrDelete1="deleteFromT_StuwhereID=@id"; //

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論