Visual Studio 2019(C#)Windows數(shù)據(jù)庫項目開發(fā) 課件全套 第1-12章 認(rèn)識項目、主窗體開發(fā)-使用 ClickOnce 部署項目_第1頁
Visual Studio 2019(C#)Windows數(shù)據(jù)庫項目開發(fā) 課件全套 第1-12章 認(rèn)識項目、主窗體開發(fā)-使用 ClickOnce 部署項目_第2頁
Visual Studio 2019(C#)Windows數(shù)據(jù)庫項目開發(fā) 課件全套 第1-12章 認(rèn)識項目、主窗體開發(fā)-使用 ClickOnce 部署項目_第3頁
Visual Studio 2019(C#)Windows數(shù)據(jù)庫項目開發(fā) 課件全套 第1-12章 認(rèn)識項目、主窗體開發(fā)-使用 ClickOnce 部署項目_第4頁
Visual Studio 2019(C#)Windows數(shù)據(jù)庫項目開發(fā) 課件全套 第1-12章 認(rèn)識項目、主窗體開發(fā)-使用 ClickOnce 部署項目_第5頁
已閱讀5頁,還剩69頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目1

認(rèn)識項目學(xué)習(xí)目標(biāo):

準(zhǔn)備好開發(fā)環(huán)境,認(rèn)識本書教學(xué)項目的功能,了解項目所使用的數(shù)據(jù)庫中各表的含義以及表之間的關(guān)系。

培育精益求精的工匠精神。本書所采用的開發(fā)環(huán)境為:

VisualStudio2019(社區(qū)版、專業(yè)版、企業(yè)版均可),編者這里使用的是社區(qū)版,社區(qū)版可在微軟官網(wǎng)免費下載和使用。

SQLServer2014或以上版本,編者這里使用的是SQLServer2014。項目設(shè)計及學(xué)習(xí)目的介紹

(1)為什么開發(fā)Windows項目?

Windows窗體應(yīng)用程序具備界面友好、功能豐富的特點,加上智能客戶端部署功能,可使客戶端自動升級更新到最新程序。

(2)為什么使用數(shù)據(jù)庫項目?

市場上需求的軟件,如各種ERP軟件、財務(wù)軟件、游戲軟件等基本上都和數(shù)據(jù)庫有關(guān),所以開發(fā)數(shù)據(jù)庫系統(tǒng)具有廣泛的實用性。系統(tǒng)運行

準(zhǔn)備項目所需數(shù)據(jù)庫

在VS2019下打開項目

運行效果:登錄窗體運行效果:主窗體更多運行效果請參照教材項目2主窗體開發(fā)學(xué)習(xí)目標(biāo):

本章旨在通過創(chuàng)建新的Windows窗體應(yīng)用程序和主窗體的開發(fā)來讓讀者熟悉VisualStudio集成開發(fā)環(huán)境(IDE)的常用元素。

通過主窗體的開發(fā),我們將學(xué)習(xí): 主菜單:MenuStrip控件

工具欄:ToolStrip控件

狀態(tài)欄:StatusStrip控件

MDI窗體:包含多個子窗體的父窗體

主菜單:MenuStrip控件

使用該控件,可以輕松創(chuàng)建MicrosoftOffice中那樣的菜單。

可以通過添加訪問鍵、快捷鍵、選中標(biāo)記、圖像和分隔條,來增強菜單的可用性和可讀性。整個窗體為MDI窗體的父窗體工具欄:ToolStrip控件

創(chuàng)建易于自定義的常用工具欄,這些工具欄支持高級用戶界面和布局功能,如??俊⑵?、帶文本和圖像的按鈕、下拉按鈕和控件。狀態(tài)欄:StatusStrip控件

StatusStrip控件通常用來顯示正在Form上查看的對象的相關(guān)信息、對象的組件或與該對象在應(yīng)用程序中的操作相關(guān)的上下文信息。

通常,StatusStrip控件由ToolStripStatusLabel對象組成,每個這樣的對象都可以顯示文本、圖標(biāo)或同時顯示這二者。

StatusStrip還可以包含ToolStripDropDownButton、ToolStripSplitButton和ToolStripProgressBar控件。MDI窗體

MDI窗體是指一個包含多個子窗體的父窗體,用MDI窗體創(chuàng)建的應(yīng)用程序由父窗體和子窗體兩部分構(gòu)成。

本章的演練創(chuàng)建的是MDI窗體的父窗體,也就是本書項目的主窗體學(xué)習(xí)目標(biāo):

掌握使用類型化數(shù)據(jù)集。

以系部數(shù)據(jù)維護為例學(xué)會以DataGridView的方式維護單表數(shù)據(jù)。

以班級數(shù)據(jù)維護為例學(xué)會在DataGridView中使用下拉框維護帶主外鍵關(guān)系表的數(shù)據(jù)。

以學(xué)生數(shù)據(jù)維護為例學(xué)會使用詳細(xì)信息的方式維護數(shù)據(jù),熟練使用數(shù)據(jù)綁定類型的下拉框和固定值的下拉框,DateTimePicker日期控件的使用。

以課程數(shù)據(jù)維護為例學(xué)會以自己控制新增、修改、刪除的數(shù)據(jù)維護方式。

項目3數(shù)據(jù)維護窗體開發(fā)3.1系部數(shù)據(jù)維護

通過本節(jié),

我們將學(xué)習(xí):

類型化數(shù)據(jù)集

DataGridView

如何調(diào)用MDI子窗體

數(shù)據(jù)集DataSet

數(shù)據(jù)集是包含數(shù)據(jù)表的對象,可以在這些數(shù)據(jù)表中臨時存儲數(shù)據(jù)以便在應(yīng)用程序中使用。

DataSet的結(jié)構(gòu)類似于關(guān)系數(shù)據(jù)庫的結(jié)構(gòu);它公開表、行、列、約束和關(guān)系的分層對象模型。

數(shù)據(jù)集可分為類型化數(shù)據(jù)集和非類型化數(shù)據(jù)集。本節(jié)學(xué)習(xí)的是類型化數(shù)據(jù)集。

類型化數(shù)據(jù)集的架構(gòu)(表和列結(jié)構(gòu))派生自.xsd文件。創(chuàng)建類型化數(shù)據(jù)集:

運行數(shù)據(jù)源配置向?qū)?,或通過“項目”菜單上的“添加新項”命令來添加“數(shù)據(jù)集”項。

用數(shù)據(jù)填充數(shù)據(jù)集:

默認(rèn)情況下,數(shù)據(jù)集不包含任何實際數(shù)據(jù)。可調(diào)用TableAdapter的Fill方法填充數(shù)據(jù)。

將數(shù)據(jù)集中的數(shù)據(jù)保存回數(shù)據(jù)庫:

當(dāng)數(shù)據(jù)集中的記錄發(fā)生更改時,這些更改必須寫回數(shù)據(jù)庫。

要將更改從數(shù)據(jù)集寫入數(shù)據(jù)庫,請調(diào)用TableAdapter的Update方法。DataGridView

DataGridViewDataGridView控件提供一種強大而靈活的以表格形式顯示數(shù)據(jù)的方式。

通過本節(jié)應(yīng)掌握:

DataGridView的數(shù)據(jù)源屬性

如何更改列標(biāo)題

如何調(diào)用MDI子窗體

例如:

frmDepartmentf=newfrmDepartment();

f.MdiParent=this;

f.Show();

3.2班級數(shù)據(jù)維護

通過本節(jié),

我們將學(xué)習(xí):

在DataGridView中使用下拉框維護帶主外鍵關(guān)系表的數(shù)據(jù)。

DataGridViewComboBoxColumn

(DataGridView中的下拉框列)

需掌握的屬性:

DataSource

DiaplayMember

ValueMember

DisplayStyle

3.3學(xué)生信息維護

通過本節(jié),

我們將學(xué)習(xí):

使用詳細(xì)信息的方式維護數(shù)據(jù)

下拉框ComboBox

日期控件DateTimePicker

詳細(xì)信息

與DataGridView一次顯示多行數(shù)據(jù)的方式不同,

而詳細(xì)信息方式僅顯示一條記錄。也就更能詳細(xì)的顯示該條記錄的內(nèi)容。具體使用哪種方式應(yīng)根據(jù)具體需求確定。

下拉框ComboBox

ComboBox控件用于在下拉組合框中顯示數(shù)據(jù)。默認(rèn)情況下,ComboBox控件分為兩個部分顯示:頂部是一個允許用戶鍵入列表項的文本框。第二部分是一個列表框,它顯示一個項列表,用戶可從中選擇一項。

本節(jié)使用ComboBox需掌握的屬性:

DropDownStyle

DataSource

DiaplayMember

ValueMember

SelectedItem

日期控件DateTimePicker

使用DateTimePicker控件,用戶可以從日期或時間列表中選擇單個項。在用來表示日期時,它顯示為兩部分:一個下拉列表(帶有以文本形式表示的日期)和一個網(wǎng)格(在單擊列表旁邊的向下箭頭時顯示)。

本節(jié)使用ComboBox需掌握的屬性:

Format

CustomFormat:常用設(shè)置為“yyyy-MM-dd”(注意大小寫),表示4位年,2位月,2位日的格式。

3.4課程信息管理

通過本節(jié),

我們將學(xué)習(xí):

自己控制新增、修改、刪除的數(shù)據(jù)維護方式。

學(xué)習(xí)涉及的內(nèi)容有:GroupBox、BindingSource及其相關(guān)代碼

GroupBox

GroupBox控件用于為其他控件提供可識別的分組。

通常,使用分組框按功能細(xì)分窗體。

在分組框中對所有選項進行分組為用戶提供了邏輯可視化線索。

GroupBox控件類似于Panel控件;但只有GroupBox控件顯示標(biāo)題,而且只有Panel控件可以有滾動條。

BindingSource

BindingSource組件用于簡化將控件綁定到基礎(chǔ)數(shù)據(jù)源的過程。

BindingSource通常作為一個數(shù)據(jù)源,其他控件綁定到該數(shù)據(jù)源。

BindingSource常用屬性、方法:

Position屬性:獲取或設(shè)置基礎(chǔ)列表中的當(dāng)前位置。

AddNew方法:在基礎(chǔ)列表中添加一個新項。

RemoveCurrent方法:從列表中移除當(dāng)前項。

EndEdit方法:將掛起的更改應(yīng)用于基礎(chǔ)數(shù)據(jù)源。

CancelEdit方法:取消當(dāng)前的編輯操作。學(xué)習(xí)目標(biāo):

1、全局變量的應(yīng)用

2、編寫代碼訪問數(shù)據(jù)庫

3、啟動窗體的設(shè)置

4、開發(fā)登錄驗證窗體以及權(quán)限的控制。

項目4系統(tǒng)登錄及權(quán)限管理1、全局變量的應(yīng)用:static

static修飾符可用于類、字段、方法、屬性、運算符、事件和構(gòu)造函數(shù)

不可實例化

通常用于公共的方法、變量

2、編寫代碼訪問數(shù)據(jù)庫

熟悉如何使用:

a、DataSet、DataTable、DataRow

b、SqlConnection、SqlDataAdapter

c、Settings.settings文件a、DataSet、DataTable、DataRow

DataSet是ADO.NET結(jié)構(gòu)的主要組件,它是從數(shù)據(jù)源中檢索到的數(shù)據(jù)在內(nèi)存中的緩存。DataSet由一組DataTable對象組成。

DataTable由列和約束表示??梢元毩?chuàng)建和使用,也可以作為DataSet的成員創(chuàng)建和使用。

可以通過DataSet對象的Tables屬性來訪問DataSet中表的集合。

DataTable包含數(shù)據(jù)行DataRow。

DataRow類表示表中包含的實際數(shù)據(jù)。

DataRow對象是DataTable的主要組件。可使用DataRow對象及其屬性和方法檢索、插入、刪除和更新DataTable中的值。b、SqlConnectionSqlDataAdapter

SqlConnection對象表示與SQLServer數(shù)據(jù)源的一個唯一的會話。

SqlConnection通常與SqlDataAdapter和SqlCommand一起使用。

SqlDataAdapter是DataSet和SQLServer之間的橋接器,用于檢索和保存數(shù)據(jù)。

SqlCommand表示要對SQLServer數(shù)據(jù)庫執(zhí)行的一個Transact-SQL語句或存儲過程。本章暫未用到。

c、Settings.settings文件

用以保存應(yīng)用程序設(shè)置的信息。通常是全局信息。

本章使用到起設(shè)置的連接字符串。

連接字符串統(tǒng)一寫在這里的好處是如果我們需要修改的話只需在這一個地方進行修改,起到系統(tǒng)維護方便的作用。

3、啟動窗體的設(shè)置

熟悉Program.cs文件

入口方法Main()

根據(jù)需求,寫出符合需求的代碼。

4、權(quán)限管理

沒有固定模式,可自行根據(jù)需求設(shè)計并編寫代碼。

學(xué)習(xí)目標(biāo):

1、靈活編程來實現(xiàn)自己的業(yè)務(wù)邏輯

2、學(xué)習(xí)DataGridView的一些使用技巧。項目5

學(xué)生選課1、靈活編程來實現(xiàn)自己的業(yè)務(wù)邏輯

教材只是實現(xiàn)一個案例,希望讀者能從用戶的角度考慮需要設(shè)計什么功能,進而編程以實現(xiàn)該功能。

2、學(xué)習(xí)DataGridView的一些使用技巧。

熟悉以下內(nèi)容:

a、DataGridView的AutoGenernateColumns屬性

b、DataGridView的CurrentRow屬性

c、獲取DataGridView獲取某行某列的值

d、DataGridView的RowPostPaint事件a、DataGridView的AutoGenernateColumns屬性

獲取或設(shè)置一個值(True或False,默認(rèn)為True),指示在設(shè)置DataSource或DataMember屬性時是否自動創(chuàng)建列。

如果此屬性設(shè)置為true,DataSource由SELECT語句查詢而來時,則SELECT語句中的所有列都將顯示在DataGridView中。

可能大多數(shù)情況下您并不想這樣,所以通常設(shè)定為False。b、

DataGridView的CurrentRow屬性

獲取包含當(dāng)前單元格的行。

表示當(dāng)前單元格所在的行的DataGridViewRow 如果沒有當(dāng)前單元格,則為null。c、獲取DataGridView獲取某行某列的值

簡易語法:DataGridview.Rows[i].Cells[j].Value

其中i為行號,j為列號(注:DataGridview的行、列均從0開始計數(shù))

也可表示為:

DataGridview.Rows[i].Cells[“列名”].Value

如:

DataGridview.Rows[1].Cells[2].Value

DataGridview.Rows[1].Cells[“StuName”].Value

DataGridview.CurrentRow.Cells[“StuName”].Value

注意:Value為Object類型,您可能需要在使用時做相應(yīng)的數(shù)據(jù)類型轉(zhuǎn)換

d、DataGridView的RowPostPaint事件

在繪制DataGridViewRow后發(fā)生。

通常使用該事件來自定義控件中行的外觀。學(xué)習(xí)目標(biāo):

學(xué)習(xí)如何通過調(diào)用存儲過程的方式實現(xiàn)業(yè)務(wù)邏輯

注意:本章及以后章節(jié)以管理員身份登錄測試項目6選課抽簽及抽簽結(jié)果查詢1、在SQLServer中創(chuàng)建存儲過程

存儲過程是Transact-SQL語句和流控語句集合,

存儲過程能在一定程度上減少了網(wǎng)絡(luò)流量。

使用存儲過程可以將一些固定的操作集中起來交給SQLServer數(shù)據(jù)庫服務(wù)器完成,以實現(xiàn)某個任務(wù)。

本書使用存儲過程實現(xiàn)抽簽的業(yè)務(wù)。2、

學(xué)習(xí)如何調(diào)用存儲過程

本書以“EXEC存儲過程”的方式來調(diào)用存儲過程

本質(zhì)上和執(zhí)行SQL語句沒什么區(qū)別

學(xué)習(xí)目標(biāo):

1、靈活使用SQL語句

2、編寫代碼對DataSet進行更細(xì)節(jié)的控制項目7

統(tǒng)計查詢1、靈活使用SQL語句

教材只是實現(xiàn)一兩個功能示例,希望讀者能從用戶的角度考慮需要設(shè)計什么功能,進而編程以實現(xiàn)該功能。

2、編寫代碼對DataSet進行更細(xì)節(jié)的控制

a、代碼基本上是已經(jīng)用過的代碼,希望大家能夠靈活運用,針對代碼的每一個功能,能夠思索:

該代碼功能的作用、能達到什么目的

什么時候需要用到什么代碼

b、即使沒學(xué)過的代碼,在設(shè)計時能思考:

我需要什么樣的功能,有相關(guān)的代碼能完成該功能嗎?

能上網(wǎng)搜索類似問題的解決辦法

總之首先要知道自己要做什么、然后思考如何做、做不了的能查幫助、上網(wǎng)搜索解決方法。最終能達到自學(xué)、自用學(xué)習(xí)目標(biāo):

掌握設(shè)計RDLC報表,熟悉RDLC報表中的常用控件,學(xué)會設(shè)計和調(diào)用報表預(yù)覽頁面。

培養(yǎng)“執(zhí)著專注、精益求精、一絲不茍、追求卓越”的工作態(tài)度。

項目8RDLC報表

1、設(shè)計CrystalReports

準(zhǔn)備報表對應(yīng)的數(shù)據(jù)集,包括表、列以及表之間的關(guān)系。

設(shè)計報表,通過演練清楚如下概念:

要打印的報表字段

分組(個人建議在SQL語句中分組,因為打印只是屏幕顯示內(nèi)容的擴展)

字段資源管理器

報表頁眉、頁眉、詳細(xì)資料、報表頁腳、頁腳

如何畫線、畫框

設(shè)置對象格式,如字體大小等

特殊字段:打印日期、頁碼2、如何為報表提供數(shù)據(jù)

如:設(shè)置報表的數(shù)據(jù)源為dsXk

r.SetDataSource(dsXk);

注意:在設(shè)計報表時用到的表名、列名以及表之間的關(guān)系應(yīng)存在與dsXk中3、如何調(diào)用運行報表

//實例化預(yù)覽窗體

frmPrintp=newfrmPrint();

//設(shè)置預(yù)覽窗體中的預(yù)覽控件的報表源

p.crystalReportViewer1.ReportSource=r;

注意:crystalReportViewer1Modifiers屬性設(shè)置為“Internal”

完整代碼請參照教材本章演示了3種情形,分別為:

打印來自單表的數(shù)據(jù)

打印來自多表的數(shù)據(jù)

打印來自自定義表的數(shù)據(jù)

實際開發(fā)時請大家根據(jù)實際情況選擇或變通處理學(xué)習(xí)目標(biāo):

1、開發(fā)系統(tǒng)關(guān)于框,學(xué)習(xí)使用程序集信息 2、異常處理

3、DataGridView單擊列標(biāo)題時取消排序

4、用Singleton模式防止MDI子窗體的多實例化

項目9

系統(tǒng)完善

1、開發(fā)系統(tǒng)關(guān)于框,學(xué)習(xí)使用程序集信息

熟悉如何設(shè)置程序集信息

程序集信息內(nèi)容:標(biāo)題、說明、公司、產(chǎn)品、版權(quán)、版本等

清楚程序集信息和代碼的對應(yīng)關(guān)系,如:AssemblyTitle、AssemblyProduct等2、異常

異常處理功能可幫助我們處理程序運行時出現(xiàn)的任何意外或異常情況。異常處理使用try、catch和finally關(guān)鍵字操作。

一旦try塊中發(fā)生異常,控制流將跳轉(zhuǎn)到第一個關(guān)聯(lián)的異常處理程序。

catch關(guān)鍵字用于定義異常處理程序。

不管是否發(fā)生異常都會執(zhí)行finally塊中的代碼。通常使用finally塊釋放資源,例如,關(guān)閉在try塊中打開的任何流或文件。3、DataGridView單擊列標(biāo)題時取消排序

相關(guān)代碼:

dataGridView1.Columns[索引號/列名].SortMode=DataGridViewColumnSortMode.NotSortable;

指定dataGridView1的某列單機列標(biāo)題時不排序4、Singleton模式

Singleton模式確保某一個類只有一個實例

Singleton模式設(shè)計的要點是:應(yīng)該由類本身來負(fù)責(zé)只使用一個類實例,而不是由類用戶來負(fù)責(zé)

我們設(shè)計時應(yīng)該考慮使用某種方法來控制如何創(chuàng)建類實例,然后確保在任何給定的時間只創(chuàng)建一個類實例學(xué)習(xí)目標(biāo):

1、學(xué)會開發(fā)用戶控件和復(fù)合控件

2、掌握控件開發(fā)過程中的屬性(Property)和事件(Event)

3、能根據(jù)自己的需要開發(fā)控件項目10控件開發(fā)

1、開發(fā)控件

通過UserControl繼承創(chuàng)建一個控件。

UserControl類提供控件所需的所有基本功能(包括鼠標(biāo)和鍵盤處理事件),但不提供控件特定的功能或圖形界面。

若要實現(xiàn)用戶控件,通常編寫該控件的OnPaint事件的代碼,以及所需的任何功能特定的代碼。設(shè)計目標(biāo)一:開發(fā)一個橢圓形的按鈕。鼠標(biāo)離開按鈕和進入這個按鈕時,按鈕的邊框和背景色發(fā)生變化。

根據(jù)功能需求,該控件設(shè)計如下:

從UserControl派生的自定義控件。

在控件內(nèi)部重寫OnPaint事件來繪制按鈕界面。

重寫OnMouseMove, OnMouseEnter,OnMouseLeave事件來實現(xiàn)按鈕的動態(tài)效果。

重寫OnClick事件。

具體演練請參照教材設(shè)計目標(biāo)二:開發(fā)一個登錄復(fù)合控件

根據(jù)功能需求,該控件設(shè)計如下:

1、設(shè)計基本通用的登錄界面

2、設(shè)計哪些屬性允許用戶使用控件時修改

3、具體登錄的代碼應(yīng)該使用控件時編寫,所以在設(shè)計控件時只是公開相應(yīng)的事件

其中2、3點讀者一定要清楚,不能寫在控件里面,否則就不具備通用性了,而我們編寫控件的目的就是為了重用,也就是需要具備一定的通用性2、使用控件

在工具箱中找到相應(yīng)的控件

拖放到需要的地方

找到控件公開的屬性、事件并進行測試學(xué)習(xí)目標(biāo):

掌握LINQ的常用技術(shù),包括:

1、LINQTOObject

2、LINQTODataSet

項目11LINQ技術(shù)1、LINQTOObject

LINQtoObjects是指直接對任意IEnumerable或IEnumerable<(Of<(T>)>)集合使用LINQ查詢,如List<(Of<(T>)>)、Array或Dictionary<(Of<(TKey,TValue>)>)。

從根本上說,LINQtoObjects表示一種新的處理集合的方法。采用舊方法,您必須編寫指定如何從集合檢索數(shù)據(jù)的復(fù)雜的foreach循環(huán)。而采用LINQ方法,您只需編寫描述要檢索的內(nèi)容的聲明性代碼。2、LINQTODataSet

使用LINQtoDataSet可以更快更容易地查詢在DataSet對象中緩存的數(shù)據(jù)。

LINQtoDataSet可使VisualStudio開發(fā)人員的工作效率更高,因為VisualStudioIDE提供編譯時語法檢查、靜態(tài)類型化和對LINQ的IntelliSense支持。

LINQ查詢具有三大優(yōu)勢:

1、更簡明、更易讀,尤其在篩選多個條件時 2、使用最少的應(yīng)用程序代碼提供強大的篩選、排序和分組功能

3無需修改或只需做很小的修改即可將它們移植到其他數(shù)據(jù)源

通常,對數(shù)據(jù)執(zhí)行的操作越復(fù)雜,體會到使用LINQTOObj

溫馨提示

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

評論

0/150

提交評論