测试C#方法,涉及SQL
本文关键字:涉及 SQL 方法 测试 | 更新日期: 2023-09-27 18:34:37
我这里有一个为家庭作业创建的方法。我相信它有效,我想测试它是否有效。所以这是方法:
public static bool UpdatePerson (Personnel person, out string result)
{
result = "update not successful";
bool flag = false;
System.Data.SqlClient.SqlCommand updatePerson = new System.Data.SqlClient.SqlCommand();
updatePerson.Connection = Data.con;
//updatePerson.CommandType = CommandType.StoredProcedure;
SqlParameter p1 = new SqlParameter("perFirstName", person.First);
SqlParameter p2 = new SqlParameter("perMiddleName", person.Middle);
SqlParameter p3 = new SqlParameter("perLastName", person.Last);
SqlParameter p4 = new SqlParameter("ID", person.PersonnelID);
updatePerson.Parameters.Add(p1);
updatePerson.Parameters.Add(p2);
updatePerson.Parameters.Add(p3);
updatePerson.Parameters.Add(p4);
updatePerson.CommandText = "Update tblPersonnel Set perFirstName = " + p1 + " perMiddleName = " + p2 + " perLastName = " + p3 + "Where ID = " + p4;
try
{
Data.con.Open();
updatePerson.ExecuteNonQuery();
result = "Update Successful";
flag = true;
}
catch (Exception ex)
{
result = ex.Message;
}
finally
{
if (Data.con.State == System.Data.ConnectionState.Open)
Data.con.Close();
}
return flag;
}
现在这是测试编码:
using MovieLibrary;
namespace Test
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string result = " ";
MovieLibrary.Personnel update = MovieLibrary.Personnel.UpdatePerson(MovieLibrary.Personnel, out result);
if (update != null)
this.Label1.Text = result;
}
}
唯一给我带来问题的是在参数中插入数据。这给了我一个错误,说MovieLibrary.Personnel是一种类型,不属于那里。
你需要传递一个 Personnel
的实例。目前,您正在使用类型的名称作为参数。这是你做不到的。您的方法返回bool
..不是Personnel
对象。
希望这使它更加清晰。这就是你所拥有的,这是错误的:
MovieLibrary.Personnel update =
MovieLibrary.Personnel.UpdatePerson(MovieLibrary.Personnel, out result);
// ^^^^^^^^^^^^^^^^^^^^^^ Wrong
但是,这是您需要的:
Personnel p = new Personnel();
// set properties here
// it returns bool
bool updated =
MovieLibrary.Personnel.UpdatePerson(p, out result);
// ^^ Right.. an instance
此外,您返回的是 bool
,但结果也有一个out
参数。考虑让它返回结果(或根据布尔返回值决定做什么......或者可能让异常从方法中抛出(。