1
我試圖檢查數據庫中是否存在數值,並嘗試將其「排除」到var。 並不能讓它變成1 ...檢查數據庫中是否存在值
這裏是我的代碼來檢查。
if(!sqlUtil.Check_Person_Exists(txt_FirstName.Text.Trim(),txt_Surname.Text.Trim()))
{
// Insert
// ======
sqlUtil.Insert_person(obj);
// Redirect
// ========
Response.Redirect("Default.aspx");
}
else
{
txt_FirstName.BackColor = Color.FromName(ConfigurationManager.AppSettings["ErrorColour"]);
txt_Surname.BackColor = Color.FromName(ConfigurationManager.AppSettings["ErrorColour"]);
lbl_message.Text = " * '" + txt_FirstName.Text + " " + txt_Surname.Text +
"' already Exists!";
}
這裏是檢查方法。
public Boolean Check_Person_Exists(String Fname, String Lname)
{
// Init()
// ======
SqlConnection conn = null;
SqlDataReader rdr = null;
SqlCommand cmd = null;
var iPerson = 0;
var bPerson = false;
try
{
// Config
// -------
conn = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ConnectionString);
conn.Open();
cmd = new SqlCommand("[sp_Check_Person_Exists]", conn);
cmd.CommandType = CommandType.StoredProcedure;
// Param(s)?
// ---------
cmd.Parameters.Add("@s_FirstName", SqlDbType.NVarChar, 50).Value = Fname;
cmd.Parameters.Add("@s_Surname", SqlDbType.NVarChar, 50).Value = Lname;
// Execute
// -------
rdr = cmd.ExecuteReader();
// Row(s)?
// -------
if (rdr.HasRows)
{
// Read
// ----
while (rdr.Read())
{
// Something there?
// ----------------
if (rdr["FirstName"].ToString() !=string.Empty)
{
// Valid?
// ------
Int32.TryParse(rdr["FirstName"].ToString(), out iPerson);
if(iPerson > 0)
{
// Exists
// ------
bPerson = true;
}
}
}
}
// Clean up/close down
// ---------------------
cmd.Dispose();
rdr.Dispose();
rdr.Close();
conn.Dispose();
conn.Close();
}
catch (SqlException ex)
{
throw ex;
}
finally
{
// Clean up/close down
// ---------------------
if (cmd != null)
{
cmd.Dispose();
}
if ((rdr != null) && (!rdr.IsClosed))
{
rdr.Close();
}
if ((conn != null) && (conn.State != ConnectionState.Closed))
{
conn.Dispose();
conn.Close();
}
}
// Return
// ======
return bPerson;
}
}
對//有效嗎? 檢查我正在嘗試到iPerson,這是它失敗的地方,不會填充iPerson。
這是我的存儲過程。
ALTER PROCEDURE [dbo].[sp_Check_Person_Exists]
@s_FirstName nvarchar(50),
@s_Surname nvarchar(50)
AS
BEGIN
SELECT FirstName, Surname
FROM tbl_person
WHERE (FirstName = @s_FirstName) AND (Surname = @s_Surname)
END
我指定我的變量,這一切工作正常,但就是不會填充iPerson ..
我已經將PersonID添加到存儲過程,現在我可以獲得一個ID謝謝。 – StudentRik