首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

新手提问,留言板怎样才能使主键leaveName不为空呢?解决办法

2012-03-02 
新手提问,留言板怎样才能使主键leaveName不为空呢?。。急急急!!~~C# codepublic void AddLeaveword(String s

新手提问,留言板怎样才能使主键leaveName不为空呢?。。急急急!!~~

C# code
     public void AddLeaveword(String sTitle,String sBody)        {       //定义数据库的Connection and Command          SqlConnection myConnection = new SqlConnection(SQLCONNECTIONSTRING);         SqlCommand myCommand = new SqlCommand("Pr_AddLeaveword",myConnection);      //定义访问数据库的方式为存储过程          myCommand.CommandType = CommandType.StoredProcedure;      //创建访问数据库的参数                 SqlParameter parameterTitle = new SqlParameter("@title",SqlDbType.VarChar,30);         parameterTitle.Value = sTitle;         myCommand.Parameters.Add(parameterTitle);        SqlParameter parameterBody = new SqlParameter("@messageContent",SqlDbType.VarChar,400);         parameterBody.Value = sBody;         myCommand.Parameters.Add(parameterBody);                          //SqlParameter parameterleaveName = new SqlParameter("@leaveName", SqlDbType.VarChar, 20);            //parameterleaveName.Direction = ParameterDirection.ReturnValue;            //myCommand.Parameters.Add(parameterleaveName);            //SqlConnection conn = new SqlConnection("data source=(local);uid=sa;pwd=;database=data;pooling=true");            这四句被我注释掉了,本来书上是这么给leaveName赋值的,可是这里我的leaveName为空。。因为同学的登陆界面还没做好              不想编Session测试,想这先用插入看下可以不。。                        SqlConnection conn = new SqlConnection("data source=(local);uid=sa;pwd=;database=data;pooling=true");            String strSQL = "insert into  leaveMessage(userID,leaveName)" + "values(admin , bluyzkl111)";            SqlCommand comm = new SqlCommand(strSQL, conn);//插入userID和leaveName                    try       {        //打开数据库的连接        myConnection.Open();       }       catch(Exception ex)      {            throw new Exception("数据库连接失败!",ex);      }           try      {            //执行数据库的存储过程(访问数据库)                   myCommand.ExecuteNonQuery();     }          catch(Exception ex)         {                throw new Exception(ex.Message,ex);         }      finally      {            if (myConnection.State == ConnectionState.Open)           {         //关闭数据库的连接          myConnection.Close();           }         }          //return (char)parameterleaveName.Value;这句被我注释掉了,然后函数类型被我改成空的。。           }

这里是我写实现留言板插入留言功能的一段代码。。
具体数据库有五个字段:leaveName(主键),userID(外键,和其它表联系,确定登陆者是用户还是系统管理者的标志),title,messageContent,leaveTime,
本来是直接读取用户的Session来写入用户的userID和leaveName,我想着先不用session,于是自己用insert插入userID和leaveName来测试下先。。
但调试的时候调试提示主键leaveName不能为空。。
我知道myCommand.ExecuteNonQuery()好像只涉及了title和messageContent,leaveTime就是读取系统当前时间。。
因为插入涉及到comm,我加了comm.ExecuteNonQuery()也还是不行。。。
有点改混了,希望大家帮我看下。。。如果我有什么地方没表述清楚的请提问。。~谢谢。。



[解决办法]
汗...犯了个低级错误...
C# code
SqlParameter parameterleaveName = new SqlParameter("@leaveName", SqlDbType.VarChar, 20);parameterleaveName.Direction = ParameterDirection.ReturnValue;parameterleaveName.Value="test"+DateTime.ToString("yyyyMMddhhmmss");myCommand.Parameters.Add(parameterleaveName);
[解决办法]
jf

热点排行