存储过程为:
CREATE PROCEDURE Get
@userName varchar
AS
select * from T_UserInfo
where @userName = UserName
GO------------------------------------
表 T_UserInfo
UserName UserPWD
a a
asd asd
-------------------------------------代码:
public static void Main()
{
string userName = "asd";
string strConn = "server=(local);database=BookManagerSystem;Trusted_Connection=yes;"; SqlConnection conn = new SqlConnection(strConn);
SqlCommand comm = new SqlCommand("Get", conn);
comm.CommandType = CommandType.StoredProcedure;
try
{
conn.Open(); comm.Parameters.Add("@userName", SqlDbType.NVarChar); SqlDataReader reader = comm.ExecuteReader();
while(reader.Read())
{
Console.WriteLine(reader["UserName"]);
Console.WriteLine(reader["UserPWD"]);
}
} catch(Exception ex)
{
Console.WriteLine( ex);
}
finally
{
conn.Close();
}
Console.ReadLine(); }
--------------------------------------------------运行结果
a
a
---------------------------------------------------为什么输入的asd,却返回a的内容?哪里有问题?
CREATE PROCEDURE Get
@userName varchar
AS
select * from T_UserInfo
where @userName = UserName
GO------------------------------------
表 T_UserInfo
UserName UserPWD
a a
asd asd
-------------------------------------代码:
public static void Main()
{
string userName = "asd";
string strConn = "server=(local);database=BookManagerSystem;Trusted_Connection=yes;"; SqlConnection conn = new SqlConnection(strConn);
SqlCommand comm = new SqlCommand("Get", conn);
comm.CommandType = CommandType.StoredProcedure;
try
{
conn.Open(); comm.Parameters.Add("@userName", SqlDbType.NVarChar); SqlDataReader reader = comm.ExecuteReader();
while(reader.Read())
{
Console.WriteLine(reader["UserName"]);
Console.WriteLine(reader["UserPWD"]);
}
} catch(Exception ex)
{
Console.WriteLine( ex);
}
finally
{
conn.Close();
}
Console.ReadLine(); }
--------------------------------------------------运行结果
a
a
---------------------------------------------------为什么输入的asd,却返回a的内容?哪里有问题?
解决方案 »
- c# 如何把folderbrowser获取的路径传递给其他方法使用!
- 怎么使panel里面的自定义控件 撑满panel
- 请教如何用Net.Mail发送需要SMTP认证的邮件
- 错误处理,如何判断错误种类
- 关于dataset
- 求助:form1切换到form2的过程中,让鼠标变成沙漏状
- 论坛如何在一个DATAGRID里面调用帖子表和回帖人信息表的信息!!
- 如何通过名称(字符串形式)访问对象的域?(多个问题)
- 原来的中间件技术如COM,COM+,MTS在.net或C#中是否被其他技术取代,在C#中如何使用COM?
- 问大家两个有关类型转换的问题!(在线等待) 高分儿!!!!
- 问个简单的问题,可自己就是不知道啊~~~
- 如何将含图片的datagrid导出到excel表中
comm.Parameters.Add("@userName", SqlDbType.NVarChar).Value = userName;
comm.Parameters.Add("@userName", SqlDbType.NVarChar);
改成
SqlParameter para=new SqlParameter("@userName",SqlDbType.NVarChar);
para.Value=userName;
comm.Parameters.Add(para);
using System;
using System.Data;
using System.Data.SqlClient;class A
{
public static void Main()
{
string userName = "asd";
string strConn = "server=(local);database=BookManagerSystem;Trusted_Connection=yes;"; SqlConnection conn = new SqlConnection(strConn);
SqlCommand comm = new SqlCommand("Get", conn);
comm.CommandType = CommandType.StoredProcedure;
try
{
conn.Open(); comm.Parameters.Add("@userName", SqlDbType.NVarChar);
comm.Parameters["@userName"].Value = userName; SqlDataReader reader = comm.ExecuteReader();
while(reader.Read())
{
Console.WriteLine(reader["UserName"]);
Console.WriteLine(reader["UserID"]);
Console.WriteLine(reader["UserPWD"]);
Console.WriteLine(reader["UserPop"]);
}
} catch(Exception ex)
{
Console.WriteLine( ex);
}
finally
{
conn.Close();
}
Console.ReadLine(); }
}
using System;
using System.Data;
using System.Data.SqlClient;class A
{
public static void Main()
{
string userName = "aa";
string strConn = "server=(local);database=BookManagerSystem;Trusted_Connection=yes;"; SqlConnection conn = new SqlConnection(strConn);
SqlCommand comm = new SqlCommand("Get", conn);
comm.CommandType = CommandType.StoredProcedure;
try
{
conn.Open(); comm.Parameters.Add("@userName", SqlDbType.NVarChar);
comm.Parameters["@userName"].Value = userName;//这里赋值 SqlDataReader reader = comm.ExecuteReader();
while(reader.Read())
{
Console.WriteLine(reader["UserName"]);
Console.WriteLine(reader["UserID"]);
Console.WriteLine(reader["UserPWD"]);
Console.WriteLine(reader["UserPop"]);
}
} catch(Exception ex)
{
Console.WriteLine( ex);
}
finally
{
conn.Close();
}
Console.ReadLine(); }
}
结果一样
T_UserInfo
UserName UserPWD
bb bb
asd asd
-------------------------------------
看运行的结果是什么~
T_UserInfo
UserName UserPWD
b c
bb bb
asd asd 输入bb,他会出现c,而不是bb
CREATE PROCEDURE Get
@userName varchar --->这个改为:@userName nvarchar(100)
AS
代码:
comm.Parameters.Add("@userName", SqlDbType.NVarChar);
这个改为:comm.Parameters.Add("@userName", SqlDbType.NVarChar,100);试使看