測試在項目中是很重要的一個環節,在Visual Studio 2010中,在測試方面已經有很好的支持了,比如有單元測試,負載測試等等。在數據測試的方面,Visual Studio 2010,還支持對數據庫進行多種測試,其中一個很好用的功能是能為開發者在測試階段,大量方便地為數據庫生成隨機的數據,而且還可以自己指定生成數據的規則,十分方便,這就讓在測試過程中,開發者能有更充足的數據樣本對項目進行測試。本文則介紹其中的Data Generation數據生成器的使用方法。
1 創建SQL Server 2008數據庫項目
首先,打開Visual Studio 2010,選擇新建項目,在下圖中,選擇建立一個SQL Server 2008的數據庫項目,命名為SampleDBApp
2 導入數據
在建立好數據庫項目後,接著我們可以進行數據對象的導入,這裡將已存在的數據庫中的數據對象導入到我們建立好的數據庫項目中。首先我們要連接到數據庫中,在數據庫項目中鼠標右鍵,在彈出的菜單中選擇“導入數據對象和設置”,如下圖:
這會打開一個數據導入的向導窗口,如下圖,會提示用戶連接已有的數據庫,我們只需要簡單按照向導說的去一步步完成即可。
在數據導入完成後,會出現如下的提示信息,表示數據已經成功導入。
3 添加數據生成計劃
這時,我們可以開始添加數據生成計劃了。在項目中鼠標右鍵後的彈出菜單中,選擇“Data Generation Plan”,如下圖:
在彈出的窗口中繼續選擇增加數據轉換計劃,如下圖:
4 選擇要添加的表
接下來,會出現該數據庫中已有的表,以供用戶選擇對哪些表進行生成數據,當用戶選擇某個表後,會在屏幕下方顯示該表中的所有列,以供用戶選擇哪些列來生成數據。
在上圖中,比如象Products表,還可以設置它的相關聯的表,如Categories表,還可以設置其關聯關系(在Ratio to Related列中設置),如1:1一對一關系。而在下方的列的部分,注意其中的每個列的Generator生成器中,甚至可以設置使用正則表達式去生成數據,如下圖,十分方便。
5 生成數據
在上面的步驟都完成後,可以點如下圖的生成按鈕或者F5,即可馬上在數據表中隨機生成測試數據,在生成時,系統會詢問是否在現有的數據庫表中生成測試數據,還是另外選擇生成的目的地。
6 檢驗生成的數據
最後,數據生成後,可以到Sql Server中檢查生成的數據,如下圖,可見Visual Studio的數據生成器的確為我們生成了大量的測試數據。
微軟官方文檔:http://msdn.microsoft.com/en-us/library/dd193262(v=vs.100).aspx
VS2010中的ASP.net,是可以用來創建SQL2008數據庫的,因為VS2010與sql2008集成得很好。
第一個解決方案:右擊工程,添加新項目,選擇-》數據模板中的ADO.NET entity data model模板,給個名字創建。新的窗口中選擇Generate from database選項---next按鈕。新窗口中選擇new connection。新窗口中選擇數據源data source為:Microsoft SQL Server Database File(SqlClient)。選擇數據庫文件目錄,或者創建數據庫文件的目錄---一般選擇工程所在目錄,然後給數據庫一個名字.mdf。選擇Use Windows Authentication。然後選擇OK,YES。……這樣創建數據庫呢不是很好。
一般呢這種方法用於Entity FrameWork 數據庫中表與對象映射。
第二個解決方案:用SQL2008創建好數據庫以後,在VS2010中用連接字符串連接接,即代碼連接:用連接字符串,自己網上找吧。這種較為常見,連接字符串,初學者可以放到邏輯代碼文件中,公司用的話就是放到.config文件中了。
第三種解決方案:在VS2010的視圖即view菜單中選擇Server,在Data Connection上右擊,選擇Create New SQL database.這個時候要保證自己機器上得SQL 服務已經開啟。然後選擇服務器名。給數據庫名……。這種方式呢,最方便,在一個VS2010集成開發環境就可以創建數據庫而且簡單易行。不需要再切換到SQL2008。體現了VS2010這個集成工具的強大
try{
string strSql = "select count(*) from Admin where LoginId= ' " + userName + " ' and Loginpwd + " ' ";//頂一個字符串 strsql的內容是數據庫查詢語句. 統計 admin表中 loginid +username和loginpwd都等於空的有多少個.
conn.Open();//打開數據庫連接
SqlCommand comm =new SqlCommand(strSql, conn);//sqlcommand方法 兩個參數,第一個參數是數據庫查詢語句,第二個是數據庫連接的信息.
int iret = (int)comm.ExecuteScalar();//comm.excutescalar方法返回的值是數字的.返回的值是通過在數據庫執行strsql語句返回統計的值.
if(iRet != 1){判斷返回值是否不等於1
strMsg = "輸入無效!" ;//如果不等於1 則返回strmsg值為 輸入無效
teturn false; //返回false
}else{
return true;返回其他值 都返回true.(count 返回的值一般是等於0或者大於0,不曉得為什麼要不等於1...)
}
}
catch (Exception){
strMsg = "發生異常!";
return false;
}
finally{
conn.Close();
}
}
}
try 方法是嘗試做這件事 .如果成果了.就繼續執行下面的代碼.如果出現錯誤了.則在catch中提示處理.而不會讓頁面出現錯誤..