ALTER PROCEDURE dbo.StoredProcedure4
(
@UName nvarchar(50),
@UPassword nvarchar (50)
)
AS
SELECT * FROM Users WHERE UserName = @UName AND
cast (Password as nvarchar (50)) = @UPassword
RETURN
Logen and Password Help Me Please
Код:
public bool SearchUser(string Name, Guid Password)
{
bool flagResult = false;
using (SqlConnection con = new SqlConnection(constring))
{
SqlCommand com = new SqlCommand("StoredProcedure4", con);
com.CommandType = System.Data.CommandType.StoredProcedure;
SqlParameter param = new SqlParameter();
param.ParameterName = "@UName";
param.Value = Name;
param.SqlDbType = System.Data.SqlDbType.NVarChar;
param.Direction = System.Data.ParameterDirection.Input;
com.Parameters.Add(param);
param = new SqlParameter();
param.ParameterName = "@UPassword";
param.Value = Password;
param.SqlDbType = System.Data.SqlDbType.NVarChar;
param.Direction = System.Data.ParameterDirection.Input;
com.Parameters.Add(param);
try
{
con.Open();
if (com.ExecuteNonQuery() == 1)
flagResult = true;
}
catch
{
}
return flagResult;
}
}
}
}
{
bool flagResult = false;
using (SqlConnection con = new SqlConnection(constring))
{
SqlCommand com = new SqlCommand("StoredProcedure4", con);
com.CommandType = System.Data.CommandType.StoredProcedure;
SqlParameter param = new SqlParameter();
param.ParameterName = "@UName";
param.Value = Name;
param.SqlDbType = System.Data.SqlDbType.NVarChar;
param.Direction = System.Data.ParameterDirection.Input;
com.Parameters.Add(param);
param = new SqlParameter();
param.ParameterName = "@UPassword";
param.Value = Password;
param.SqlDbType = System.Data.SqlDbType.NVarChar;
param.Direction = System.Data.ParameterDirection.Input;
com.Parameters.Add(param);
try
{
con.Open();
if (com.ExecuteNonQuery() == 1)
flagResult = true;
}
catch
{
}
return flagResult;
}
}
}
}
Код:
Код:
public partial class Logen : Form
{
DAL dal = new DAL();
public Logen()
{
InitializeComponent();
}
private void login_Click(object sender, EventArgs e)
{
if (dal.SearchUser(log.Text.Trim(),
GetHashString(pass.Text.Trim())))
this.DialogResult = DialogResult.OK;
else
this.DialogResult = DialogResult.No;
}
Guid GetHashString(string s)
{
byte[] bytevalue = Encoding.Unicode.GetBytes(s);
MD5CryptoServiceProvider csp = new MD5CryptoServiceProvider();
byte[] byteHash = csp.ComputeHash(bytevalue);
string rez = string.Empty;
foreach (byte b in byteHash)
rez += string.Format("{0:x2}",b);
return new Guid (rez);
}
}
}
{
DAL dal = new DAL();
public Logen()
{
InitializeComponent();
}
private void login_Click(object sender, EventArgs e)
{
if (dal.SearchUser(log.Text.Trim(),
GetHashString(pass.Text.Trim())))
this.DialogResult = DialogResult.OK;
else
this.DialogResult = DialogResult.No;
}
Guid GetHashString(string s)
{
byte[] bytevalue = Encoding.Unicode.GetBytes(s);
MD5CryptoServiceProvider csp = new MD5CryptoServiceProvider();
byte[] byteHash = csp.ComputeHash(bytevalue);
string rez = string.Empty;
foreach (byte b in byteHash)
rez += string.Format("{0:x2}",b);
return new Guid (rez);
}
}
}
Eben was bei dir nicht arbeitet? Welche Fehler ausgibt?
Кстати, если звездочка (select *) используется не для сокращения в примере, а действительно взято из рабочего кода, рекомендуется заменить ее на явный список полей. И еще, непонятно, какого типа у вас Password? Может быть лучше изменить ему тип на nvarchar (50), на уровне схемы, это даст возможность построить более селективный индекс по логин+пароль и ускорить выполнение.
Алле цу замме:
Код:
CREATE FUNCTION dbo.StoredFunction4(@UName nvarchar(50), @UPassword nvarchar (50)) RETURNS int
AS
BEGIN
RETURN(SELECT COUNT(*) FROM Users WHERE Name = @UName AND cast (Password as nvarchar (50)) = @UPassword);
END;
AS
BEGIN
RETURN(SELECT COUNT(*) FROM Users WHERE Name = @UName AND cast (Password as nvarchar (50)) = @UPassword);
END;
Код:
//...
var command = connection.CreateCommand();
command.CommandType = CommandType.Text;
command.CommandText = "SELECT [dbo].[StoredFunction4](@UName, @UPassword);";
command.Parameters.Add("UName", SqlDbType.NVarChar, 50).Value = "test";
command.Parameters.Add("UPassword", SqlDbType.NVarChar, 50).Value = "test";
var result = 1.Equals(command.ExecuteScalar());
var command = connection.CreateCommand();
command.CommandType = CommandType.Text;
command.CommandText = "SELECT [dbo].[StoredFunction4](@UName, @UPassword);";
command.Parameters.Add("UName", SqlDbType.NVarChar, 50).Value = "test";
command.Parameters.Add("UPassword", SqlDbType.NVarChar, 50).Value = "test";
var result = 1.Equals(command.ExecuteScalar());
I think your problem is that Logen is not yours. It belongs to Norway essentially.
Цитата: Der Meister
Фо эни селект стейтмент ретён вэлье оф экзекьют-нон-куери() месод вилл олвейз би -1. Ю шуд юз экзекьютскэла() энд стоэд фанкшн ретёнин каунт оф рекордс инстэд.
...
...
И мутко всё это подсунуть, нравится мне его английский и всё тут )))
I have found you problem!!! The problem is that you are using Logen instead of Login!!1
с какого языка, как переводится?
Сори фо вэ аутор оф мисъуз ю пэйдж исъю
Цитата: QWERYTY
Der Meister, что значит "Алле цу замме"?
с какого языка, как переводится?
Сори фо вэ аутор оф мисъуз ю пэйдж исъю
с какого языка, как переводится?
Сори фо вэ аутор оф мисъуз ю пэйдж исъю
alles zusammen
Все татары, кроме я?