当前位置:编程学习 > C#/ASP.NET >>

很简单的一个问题 分数很好拿的 !!!

[size=18px][size=16px][size=12px] protected void btnCommit_Click(object sender, EventArgs e)
    {
        DataTable tb;
        int numberOfRow;
        DataRow dtr ;
        string sqlconn;
        SqlDataAdapter myadapter;
        SqlConnection mysqlconnection;
        string currentTime;

        sqlconn = "data source=;database= 留言板测试;Integrated Security=SSPI;";// 这里没有问题
        mysqlconnection = new SqlConnection(sqlconn);
        SqlCommand mysqlcommand = mysqlconnection.CreateCommand();
        myadapter = new SqlDataAdapter();
        myadapter.SelectCommand = mysqlcommand;
        mysqlcommand.CommandText = "select * from tb_Message Order by Createdate DESC";
        mysqlconnection.Open();
        DataSet myDataSet = new DataSet();
        numberOfRow = myadapter.Fill(myDataSet ,"tb_Message");
        tb = myDataSet.Tables["tb_Message"];
        dtr = tb.NewRow();
        currentTime = System.DateTime.Now.ToString ();
        dtr["Title"] = tbTitle.Text;
        dtr["Email"] = tbEmail.Text;
        dtr["Message"] = tbMessage.Text;
        dtr["CreateDate"] = currentTime;
        tb.Rows.Add(dtr);
        numberOfRow = myadapter.Fill(myDataSet, "tb_Message");
        SqlCommandBuilder scb = new SqlCommandBuilder(myadapter );
        myadapter.Update(myDataSet.Tables["tb_Messsage"]);
        Response.Write("<script>alert('留言成功!');</script>");

    }[/size][/size][/size]



红色部分提示参数值不能为空  dataaset --------------------编程问答-------------------- 学习... --------------------编程问答-------------------- 自己先顶一个  在线等待   --------------------编程问答-------------------- update(tb)吧 --------------------编程问答-------------------- Update 函数得你自己实现 --------------------编程问答--------------------

numberOfRow = myadapter.Fill(myDataSet, "tb_Message");

将NewRow添加到DataTable后再来一次Fill???? --------------------编程问答--------------------
引用 3 楼 hai040 的回复:
update(tb)吧

我以前在其他网页中都能使用的啊   就这样 --------------------编程问答-------------------- 将NewRow添加到DataSet后,不用再Fill了


using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        adapter.SelectCommand = new OleDbCommand(queryString, connection);
        OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

        connection.Open();

        DataSet customers = new DataSet();
        adapter.Fill(tb);

        dtr = tb.NewRow();
        currentTime = System.DateTime.Now.ToString ();
        dtr["Title"] = tbTitle.Text;
        dtr["Email"] = tbEmail.Text;
        dtr["Message"] = tbMessage.Text;
        dtr["CreateDate"] = currentTime;
        tb.Rows.Add(dtr);

        adapter.Update(tb);

        return customers;
    }

--------------------编程问答--------------------
引用 5 楼 mayonglong 的回复:
C# code

numberOfRow = myadapter.Fill(myDataSet, "tb_Message");


将NewRow添加到DataTable后再来一次Fill????

 tb.Rows.Add(dtr);
numberOfRow = myadapter.Fill(myDataSet, "tb_Message");
大侠  我这里已经fill了  检测的时候numberofROw的数字没有再增加  本来应该比原来多一的 --------------------编程问答-------------------- 大侠们 得负责到底啊 这样我怎么给分啊  问题还没有解决呢  晕了 --------------------编程问答-------------------- 你取numberOfRow做什么  --------------------编程问答--------------------
引用 7 楼 mayonglong 的回复:
将NewRow添加到DataSet后,不用再Fill了


C# code

using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        adapt……

同意楼上
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,