转换错误 - >字符串在asp.net
问题描述:
唯一标识符我有一个存储过程,如:转换错误 - >字符串在asp.net
ALTER procedure [dbo].[prcDisplayTpTestimonial]
@personname varchar(100),
@orderby varchar(100),
@OrderByDirection varchar(100)
As
Begin
set nocount on;
select t.id_testimonials,
(select client_name
from tp_Client_Master c
where c.client_id = t.client_id) as client_name,
t.Person_Name,
t.Description
from tp_Testimonial_master t
where t.Person_name like '%' + @personname + '%'
and t.syncoperation <> 'D'
order by case
when @orderby = 'Person_Name'
and @OrderByDirection = 'asc' then Person_Name
end asc,
case
when @orderby = 'Person_Name'
and @OrderByDirection = 'desc' then Person_Name
end desc,
case
when @orderby = 'Description'
and @OrderByDirection = 'asc' then Description
end asc,
case
when @orderby = 'Description'
and @OrderByDirection = 'desc' then Description
end desc
End
是做工精细,但是当我跑我的CS页面给它的唯一标识符错误这里是我的 CS代码:
SqlCommand cmd1 = new SqlCommand("prcDisplayTpTestimonial", con);
cmd1.CommandType = CommandType.StoredProcedure;
cmd1.Parameters.Add(new SqlParameter("@personname", SqlDbType.VarChar)).Value = clientSearch.Text.ToString().Trim();
cmd1.Parameters.Add(new SqlParameter("@orderby", SqlDbType.VarChar)).Value = sort;
cmd1.Parameters.Add(new SqlParameter("@OrderByDirection", SqlDbType.VarChar)).Value = sort_direction;
DataTable dt = new DataTable();
SqlDataAdapter adp = new SqlDataAdapter(cmd1);
adp.Fill(dt);
dgTestimonial.DataSource = dt;
dgTestimonial.DataBind();
答
某处,您将字符串值传递给数据库中的uniqueidentifier字段。
确保c.client_id
和t.client_id
都是相同的数据类型。
就您选择的数据类型而言,请记住uniqueidentifier
类型更适用于表格中的电子邮件地址等内容,以便每行都有唯一的电子邮件地址(例如) - 除非我是错误。
对于行ID的列,我在列中使用任一int
数据类型与identity(1,1)
,或我使用varchar
数据类型与new guid()
的默认值。
希望这会有所帮助。
'c.client_id'和't.client_id'是否都是相同的数据类型? – 2011-10-10 07:06:48
你的表格定义是什么? –