gpt4 book ai didi

c# - 在 C# 中仅获取输出参数中的第一个字符

转载 作者:太空宇宙 更新时间:2023-11-03 10:48:40 28 4
gpt4 key购买 nike

我已经定义了如下所示的输出参数:

C#:

scom.Parameters.Add("@User_ID",SqlDbType.VarChar,8).Direction = ParameterDirection.Output ;

SQL:

@User_ID varchar(8) output

我在 Sql Server 中执行过程时得到完整的字符串,但在 C# 中只得到第一个字符。我搜索了很多并确保在 C# 和 Sql 中都定义了大小。即使我尝试使用固定长度的字符 (Char(8)),但在 C# 中仍然只获取第一个字符。请告诉我问题是什么。

C#代码:

public bool CheckPhone(string phoneNumber)
{
SqlConnection myconn=new SqlConnection(connectionString);
try
{
myconn.Open();
SqlCommand scom = new SqlCommand("AuthenticatePhone", myconn);
scom.CommandType = CommandType.StoredProcedure;
scom.Parameters.Add("@phoneNumber", SqlDbType.BigInt).Value = Convert.ToInt64(phoneNumber);
scom.Parameters.Add("@User_ID", SqlDbType.Char, 8).Direction = ParameterDirection.Output;

scom.Parameters.Add("@User_Name", SqlDbType.Char, 120).Direction = ParameterDirection.Output;

scom.ExecuteNonQuery();
if (scom.Parameters["@User_Name"] == null)
{
return false;
}
else
{
UserID = (string)scom.Parameters["@User_ID"].Value;//.ToString();
UserName = (string)scom.Parameters["@User_Name"].Value;//.ToString();
myconn.Close();
return true;
}
}
catch (Exception e)
{
string error = e.InnerException + e.Message;
}
finally
{
myconn.Close();
}

return false;
}

SQL:

Create procedure dbo.AuthenticatePhone

@phoneNumber numeric(11,0) ,
@User_ID varchar(8) output ,
@User_Name varchar(120) output
as
begin

Select @User_ID = convert(varchar(8),[User_ID]) ,
@User_Name = [User_Name]
from dbo.NRE_Users
where PhoneNumber = @phoneNumber
;

print @User_ID
print @User_Name

end

最佳答案

尝试使用下面的代码:

参数[参数编号].Size = 200;

关于c# - 在 C# 中仅获取输出参数中的第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22357668/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com