日期:2014-05-19  浏览次数:20456 次

有关存储过程出现的异常现象
今天尝试着用存储过程写程序,但是很不顺利,我在向数据库中插入数据时不能将所有字符串全部插入,只是将字符串的第一个字符写进了数据库中,代码如下:
存储过程:
ALTER   PROCEDURE   dbo.AddType  

@FatherType   nchar,
@SonType   nchar

AS

insert   into   viewtype(TnameOne,TnameTwo)   values(@FatherType,@SonType)
RETURN
调用代码:
  SqlDatabase   DB   =   new   SqlDatabase();
                DB.DbConn.Open();
                DB.DbCmd.CommandText   =   "Addtype ";
                DB.DbCmd.CommandType   =   CommandType.StoredProcedure;
                DB.DbCmd.Parameters.Add   ( "@fatherType ",TxtFtype.Text   );
                DB.DbCmd.Parameters.Add   ( "@sonType ",TxtZtype.Text   );

                //DB.DbCmd.CommandText   =   "insert   into   viewtype(TnameOne,TnameTwo)   values( ' "   +   TxtFtype.Text     +   " ', ' "+   TxtZtype.Text     + " ') ";
                DB.DbCmd.ExecuteNonQuery();
                DB.DbConn.Close();
                DB.DbCmd.Dispose();
                DB.DbConn.Dispose();
例如:TxtFtype.Text值:父分类
TxtZtype.Text值:子分类
现在数据库中添加的相应数据是:父,子
请指教一下~谢谢



------解决方案--------------------
@FatherType nchar,
@SonType nchar
没定义长度,默认是1
------解决方案--------------------
@FatherType nchar(50),
@SonType nchar(50)

------解决方案--------------------
不要用nchar,用nvarchar
------解决方案--------------------
一个是可变长度的,一个是不变的..