找回密码
 立即注册

QQ登录

只需一步,快速开始

xxwood

初级会员

35

主题

81

帖子

240

积分

初级会员

积分
240

活字格认证

xxwood
初级会员   /  发表于:2012-9-20 10:17  /   查看:5682  /  回复:3
我想在代码里指定FpSpread表格的数据源,代码如下。但是修改数据后却保存不到数据库中,这是为什么呢?
protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
                bind();
        }

        void bind()
        {
            String ConnStr1 = ConfigurationManager.ConnectionStrings["ConnStr1"].ConnectionString;
            OleDbConnection conn = new OleDbConnection(ConnStr1);
            conn.Open();
            OleDbCommand cmd_s = conn.CreateCommand(),cmd_u=conn.CreateCommand();
            cmd_s.CommandText = "select * from test order by ny";
            //cmd_s.CommandText = "select * from test where ny=? and cl=?";
            //cmd_s.Parameters.Add("@ny_s", OleDbType.VarChar, 2, "ny").Value = "02";
            //cmd_s.Parameters.Add("@ny_s", OleDbType.Decimal, 10, "cl").Value = 11;
            cmd_u.CommandText = "update test set cl=? where ny=?";
            cmd_u.Parameters.Add("@cl_u", OleDbType.Decimal, 10, "cl");
            cmd_u.Parameters.Add("@ny_u", OleDbType.VarChar, 2, "ny");
            OleDbDataAdapter da = new OleDbDataAdapter();
            da.SelectCommand = cmd_s;
            da.UpdateCommand = cmd_u;
            DataSet ds = new DataSet();
            da.Fill(ds);
            FpSpread1.DataSource = ds;
            FpSpread1.DataBind();
            cmd_s.Dispose();
            cmd_u.Dispose();
            conn.Close();
            conn.Dispose();
        }

3 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-9-20 10:51:00
沙发
回复 1楼xxwood的帖子

xxwood 你好,
问题我已经查收,有调查结果尽快回复。
1.这个回复关于如何消除点击 Conner 全选:
前台代码:


  1.     <script type="text/javascript">
  2.         function ConerClick() {
  3.             var spread = this.document.getElementById("<%=FpSpread1.ClientID %>");
  4.             spread.ClearSelection();
  5.         }
  6.     </script>
复制代码

后台代码:

  1.         protected override void Render(HtmlTextWriter writer)
  2.         {
  3.             WebControl conner = this.FpSpread1.FindControl("corner") as WebControl;
  4.             conner.Attributes.Add("onclick", "ConerClick()");
  5.             base.Render(writer);
  6.         }
复制代码

这个解决方法的缺陷是要先全选,之后清除,有闪动出现。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-9-20 12:58:00
板凳
回复 1楼xxwood的帖子

xxwood 你还,
这个回复是 1# 中的答案:
发现原因为没有执行 Update 语句,请添加如下代码看是否起作用:
  1. cmd_u.ExecuteNonQuery();
复制代码
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-9-21 13:09:00
地板
回复 1楼xxwood的帖子

xxwood 你好,
附件中是我在 1# Demo 的基础上修改正常运行的结果:
测试方法:
运行后,照红色框修改单元格值,点击 Update(对号)更新数据。

update.png

Demo:
6105.zip (50.47 KB, 下载次数: 373)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部