| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 311 人关注过本帖
标题:添加数据出现的问题
收藏  订阅  推荐  打印
klose1986
Rank: 1
等级:新手上路
帖子:21
积分:392
注册:2008-8-2
添加数据出现的问题

protected void Button1_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            Session["userid"] = 0;
            string strID = Session["userid"].ToString();
            string strSubject = this.tbSubject.Text;
            string strMsg = this.tbMsg.Text;
            string strIP = Request.UserHostAddress.ToString();
            System.DateTime dateTime = DateTime.Now;
            string strDate = dateTime.ToString();
            string strSql = "insert into newpost(subject,userid,message,ip,posttime) values ('" + strSubject + "','" + strID + "','" + strMsg + "','" + strIP + "','" + strDate + "');";
            ExcuteSql(strSql);
            string strConn = "Data Source=admin;Initial Catalog=bbs;User ID=sa;Password=111";
            DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory("System.Data.SqlClient");
            DbConnection dbConn = dbProviderFactory.CreateConnection();
            dbConn.ConnectionString = strConn;
            dbConn.Open();
            DbCommand dbComm = dbProviderFactory.CreateCommand();
            dbComm.Connection = dbConn;
            dbComm.CommandText = "select postid from newpost where userid= '" + strID + "' and posttime= '" + dateTime + "'";
            IDataReader reader = dbComm.ExecuteReader();
            DataTable dt = new DataTable();
            dt.Load(reader);
            int strPostID = (int)dt.Rows[0][0];
            reader.Close();
            dbConn.Close();
            dbConn.Dispose();
            Response.Write("新主题添加成功,请单击<a href='message.aspx?postid=" + strPostID + "'>进入主题</a>,或者单击<a href='bbs.aspx'>返回论坛</a>");
        }
    }
    private void ExcuteSql(string strSql)
    {
        string strConn = "Data Source=admin;Initial Catalog=bbs;User ID=sa;Password=111";
        DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory("System.Data.SqlClient");
        DbConnection dbConn = dbProviderFactory.CreateConnection();
        dbConn.ConnectionString = strConn;
        dbConn.Open();
        DbCommand dbComm = dbProviderFactory.CreateCommand();
        dbComm.Connection = dbConn;
        dbComm.CommandText = strSql;
        dbComm.ExecuteNonQuery();
        dbConn.Close();
        dbConn.Dispose();
    }
   
    protected void Button2_Click(object sender, EventArgs e)
    {
       Response.Redirect("bbs.aspx");
    }
}
这是BBS论坛中发表新主题的一段代码,运行后可以进入发表的界面,但是添加内容后报错“无法将 NULL 值插入列 'views',表 'bbs.dbo.newpost';该列不允许空值。INSERT 失败”。
发表新主题连接的数据库newpost表中包括postid(主键),subject,message,posttime,userid,ip,replies(回复次数),views(浏览次数)  都设置不为空。postid标识种子,replies和 views就总是提示上面的错误。是不是数据表的属性要做修改?哪里出错了如何解决?请高手不吝赐教,谢谢
2008-8-4 09:53
雪雨星风
Rank: 4
等级:高级会员
帖子:555
积分:5940
威望:1
来自:北京
注册:2007-10-11

views有默认值吗

.NET发烧友交流群  群一:5953354(满)群二:68096127群三:30217249群四:37023079
注:二、三、四群管理员正在招募中,希望大家多多支持!
drl_0602@hotmail.com    为了更好的交流互相加一下
2008-8-4 10:03
tomtory
Rank: 4
等级:高级会员
帖子:713
积分:7588
来自:重庆
注册:2008-6-12

insert into newpost(subject,userid,message,ip,posttime) values ('" + strSubject + "','" + strID + "','" + strMsg + "','" + strIP + "','" + strDate + "')

这是你SQL语句  而表中有views和replies这两个字段
并且你将这两个字段设置了不能为空的
不的SQL语句中又没有给这两个字段赋值,当然要报错噻
必需要给在表中设置了不能为空的字段赋值
2008-8-4 10:05
雪雨星风
Rank: 4
等级:高级会员
帖子:555
积分:5940
威望:1
来自:北京
注册:2007-10-11

点击发表新主题的同时往数据库中+1

.NET发烧友交流群  群一:5953354(满)群二:68096127群三:30217249群四:37023079
注:二、三、四群管理员正在招募中,希望大家多多支持!
drl_0602@hotmail.com    为了更好的交流互相加一下
2008-8-4 10:05
klose1986
Rank: 1
等级:新手上路
帖子:21
积分:392
注册:2008-8-2

views和replies默认初始的值应该是0,请问从哪添加进去,是数据表里面直接添加还是在执行SQL语句之前定义?
2008-8-4 10:16
tomtory
Rank: 4
等级:高级会员
帖子:713
积分:7588
来自:重庆
注册:2008-6-12

在新建表的时候里面设置这两个字段的默认值就可以了噻
你也可以在SQL语句中添加
2008-8-4 14:42
klose1986
Rank: 1
等级:新手上路
帖子:21
积分:392
注册:2008-8-2

ok了,已经可以读入数据了,谢谢2位了。
2008-8-4 15:20
laser2008
Rank: 2
等级:注册会员
帖子:40
积分:516
注册:2008-4-7

呵呵! 有点意思!
2008-8-6 17:08
共有 310 人关注过本帖
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.050199 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved