s_h280
شنبه 14 خرداد 1390, 07:50 صبح
سلام
یه فرم ثبت نام داریم که میخوایم قبل از ثبت نام شخص ببینیم که UserName از قبل وجود داره یا نه که اگه وجود داره اجازه ثبت نام رو ندیم.
برای این کار تو SQL یه Function نوشتم که وجود یک User رو بررسی میکنه
به این شکل:
CREATE PROCEDURE [dbo].[CheckForUsernameExists]
(
@Username nVarchar(100)
)
AS
IF EXISTS (SELECT UserName from Register WHERE UserName = @Username)
Return 0
Else
Return 1
حالا با زدن دکمه ثبت نام میخوام از این تابع استفاده کنم ببینم User وجود داره یا نه. تابع C# هم به شکل زیره:
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection connection = Utility.CreateConnection();
SqlCommand command = new SqlCommand("CheckForUsernameExists",connection);
command.CommandType = CommandType.StoredProcedure;
SqlParameter parameter = new SqlParameter("@UserName", UserNameTextBox.Text);
command.Parameters.Add(parameter);
int resault = -1;
try
{
connection.Open();
resault = (int)command.ExecuteScalar();
}
catch (Exception)
{
}
finally
{
if (connection.State == ConnectionState.Closed)
connection.Close();
}
if (resault == 0)
{
//رد عملیات ثبت نام
}
else
{
//ثبت نام
}
}
تابع Utility.CreateConnection هم کار خاصی نمیکنه فقط با ConnectionStringی که اونجا تعریف شده یه SQLConnection میسازه و تحویل میده
حالا مشکل اینجاست که تابع Executescalar همیشه Null بر میگردونه...:متفکر:
کمک...
یه فرم ثبت نام داریم که میخوایم قبل از ثبت نام شخص ببینیم که UserName از قبل وجود داره یا نه که اگه وجود داره اجازه ثبت نام رو ندیم.
برای این کار تو SQL یه Function نوشتم که وجود یک User رو بررسی میکنه
به این شکل:
CREATE PROCEDURE [dbo].[CheckForUsernameExists]
(
@Username nVarchar(100)
)
AS
IF EXISTS (SELECT UserName from Register WHERE UserName = @Username)
Return 0
Else
Return 1
حالا با زدن دکمه ثبت نام میخوام از این تابع استفاده کنم ببینم User وجود داره یا نه. تابع C# هم به شکل زیره:
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection connection = Utility.CreateConnection();
SqlCommand command = new SqlCommand("CheckForUsernameExists",connection);
command.CommandType = CommandType.StoredProcedure;
SqlParameter parameter = new SqlParameter("@UserName", UserNameTextBox.Text);
command.Parameters.Add(parameter);
int resault = -1;
try
{
connection.Open();
resault = (int)command.ExecuteScalar();
}
catch (Exception)
{
}
finally
{
if (connection.State == ConnectionState.Closed)
connection.Close();
}
if (resault == 0)
{
//رد عملیات ثبت نام
}
else
{
//ثبت نام
}
}
تابع Utility.CreateConnection هم کار خاصی نمیکنه فقط با ConnectionStringی که اونجا تعریف شده یه SQLConnection میسازه و تحویل میده
حالا مشکل اینجاست که تابع Executescalar همیشه Null بر میگردونه...:متفکر:
کمک...