第十八週做業sql
·計劃數據庫
估計這個任務須要5-6天架構
·開發測試
*需求分析ui
用戶故事:做爲一個排球教練,我但願知道每一個隊員的技術得分狀況,以便後期對每一個隊員的訓練計劃進行調整。編碼
*生成設計文檔 spa
任務:教練經過選擇想要查詢的隊員名字來查詢本隊某隊員的技術得分。設計
*設計複審:代碼規範
將編寫的程序進行生成,進行設計複審。看看是否生成錯誤,若是錯誤進行修改。orm
*代碼規範:
利用VS對該程序進行代碼規範。
*具體設計
*具體編碼:
配置文件:
App.config:
<configuration>
<connectionStrings>
<add name="itcast" connectionString="server=.;initial catalog=itcast;integrated security=true;"/>
</connectionStrings>
</configuration>
class SqlHelper
{
private static readonly string constr = ConfigurationManager.ConnectionStrings["itcast"].ConnectionString;
public static int ExecuteNonQuery(string sql, params SqlParameter[] pams)
{
using (SqlConnection conn = new SqlConnection(constr))
{
using (SqlCommand comm = new SqlCommand(sql, conn))
{
if (pams != null)
{
comm.Parameters.AddRange(pams);
}
conn.Open();
return comm.ExecuteNonQuery();
}
}
}
public static DataTable ExecuteDataTable(string sql, params SqlParameter[] pams)
{
DataTable dt = new DataTable();
using (SqlDataAdapter adapter = new SqlDataAdapter(sql, constr))
{
if (pams != null)
{
adapter.SelectCommand.Parameters.AddRange(pams);
}
adapter.Fill(dt);
}
return dt;
}
public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] pams)
{
SqlConnection conn = new SqlConnection(constr);
using (SqlCommand comm = new SqlCommand(sql, conn))
{
if (pams != null)
{
comm.Parameters.AddRange(pams);
}
try
{
conn.Open();
return comm.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
}
catch (Exception)
{
conn.Close();
conn.Dispose();
throw;
}
}
}
public static object ExecuteScalar(string sql, params SqlParameter[] pams)
{
using (SqlConnection conn = new SqlConnection(constr))
{
using (SqlCommand comm = new SqlCommand(sql, conn))
{
if (pams != null)
{
comm.Parameters.AddRange(pams);
}
conn.Open();
return comm.ExecuteScalar();
}
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
comb();
dgv();
}
private void dgv(string sql = "select * from VolleyBaller")
{
dataGridView1.DataSource = SqlHelper.ExecuteDataTable(sql);
}
private void comb()
{
comboBox1.Items.Clear();
comboBox1.Items.Add("請選擇你的隊員名字");
comboBox1.SelectedIndex = 0;
string sql = "select name from VolleyBaller";
using(SqlDataReader reader=SqlHelper.ExecuteReader(sql))
{
if (reader.HasRows)
{
while (reader.Read())
{
comboBox1.Items.Add(reader[0]);
}
}
}
}
private void button1_Click(object sender, EventArgs e)
{
string name = comboBox1.Text.Trim();
StringBuilder sql=new StringBuilder("select * from VolleyBaller where 1=1");
if(!string.IsNullOrEmpty(name))
{
sql.Append(" and name like '%" + name + "%'");
}
dgv(sql.ToString());
}
程序執行出來的截圖:
數據庫截圖:
首次加載的圖片:
教練查詢執行的結果:
*代碼複審:和同窗對該程序進行討論,對該程序進行指正,以及對該程序的見解和意見。
*測試: 對該程序進行本身測試,而後進行修改和提交。
·報告
*測試報告:
因爲對測試過程瞭解的還不太好,一直沒有測試經過。接下來要進一步深刻了解UI測試步驟,而後 對該程序進行繼續測試。
*計算工做量:五天。
*過後總結:對於這個程序我用了WindowForm作的,實現了設計須要實現的。計劃:這個程序沒有用三層架構接下來要用三層架構來實現。還有這個用戶故事有點容易,接下來我應該實現對方的技術得分,讓教練進行對比,來看看本身的不足和長處。