mssql数据库事务问题

问:

伙伴事务管理器禁止了远程访问,是不是说我买的数据库没有开启事务功能,mssql数据库事务问题

答:您好,很抱歉为您带来不便,数据库是开启了事务功能的,您现在具体是操作什么出现错误可详细说明下。

最好详细说明测试方法和执行代码,我司核实看下是什么问题,非常感谢您长期对我司的支持!

问:private void btnOK_Click(object sender, EventArgs e)

        {

            if (dataGridView2.SelectedRows.Count <= 0)

            {

                MessageBox.Show("请选择一条指标用于支付!");

                return;

            }

            if (string.IsNullOrEmpty(txt日期.Text.Trim()))

            {

                MessageBox.Show("请输入支付的日期!");

                return;

            }

            if (listID.Count > 0)

            {

                using (TransactionScope ts = new TransactionScope())//事务处理

                {

                    try

                    {

                        List<报账Model> list_bz_Model = new List<报账Model>();

                        //1.计算此次申请的资金数,从表格中获取金额,因为可以更改表格中数据

                        for (int i = 0; i < listID.Count; i )

                        {

                            报账Model model = bz_bll.GetModelByID(listID[i]);

                            if (Convert.ToDecimal(dataGridView1.Rows[i].Cells["金额"].Value) <= model.金额)

                            {

                                model.金额 = Convert.ToDecimal(dataGridView1.Rows[i].Cells["金额"].Value);

                                list_bz_Model.Add(model);

                            }

                            else

                            {

                                MessageBox.Show($"第{i 1}行数据的金额数{dataGridView1.Rows[i].Cells["金额"].Value}大于报账数,请更改!");

                                return;

                            }

                        }

                        decimal total = list_bz_Model.Sum(t => t.金额);

                        //2.判断所选资金指标结余数是否足额,额度不足要给出提示

                        decimal zb = Convert.ToDecimal(dataGridView2.SelectedRows[0].Cells["结余数"].Value);

                        if (total > zb)

                        {

                            MessageBox.Show("所选指标不够用于当前支付!请重新选择。");

                            return;

                        }

                        //3.可以支付时将支付数据填入支付表

                        foreach (var item in list_bz_Model)

                        {

                            支付Model zf_model = new 支付Model();

                            zf_model.金额 = item.金额;

                            zf_model.资金ID = Convert.ToInt32(dataGridView2.SelectedRows[0].Cells["ID"].Value);

                            zf_model.报账ID = item.ID;

                            zf_model.日期 = txt日期.Text;

                            zf_model.凭证号 = "";

                            zf_bll.AddModel(zf_model);

                        }

                        //4.修改资金表"支付数"字段

                        资金Model zj_model = zj_bll.GetModelByID(Convert.ToInt32(dataGridView2.SelectedRows[0].Cells["ID"].Value));

                        zj_model.支付数 = total;

                        zj_bll.EditModel(zj_model);

                        //5.修改支付表"支付进度"字段

                        foreach (var item in list_bz_Model)

                        {

                            报账Model bz_model = bz_bll.GetModelByID(item.ID);

                            bz_model.支付进度 = item.金额;

                            if (bz_model.金额 – bz_model.支付进度 < 0)

                            {

                                MessageBox.Show("支付进度不能大于报账金额!");

                                return;

                            }

                            if (bz_model.金额 – bz_model.支付进度 == 0)

                            {

                                bz_model.完成状态 = "已完成";

                            }

                            bz_bll.EditModel(bz_model);

                        }

                        ts.Complete();

                        MessageBox.Show("支付成功!点击窗口关闭。");

                        this.DialogResult = DialogResult.OK;

                    }

                    catch (Exception)

                    {

                        throw;

                    }

                }

            }

        }

就是这个代码,最后捕获异常

问:这个代码在我本地机器测试能通过,把数据库换成网络版就通过不了了,咋回事

答:您好,

TransactionScope  这个是.NET的不支持;

 请使用MSSQL数据库本身的事务命令执即可,非常感谢您长期对我司的支持.由此给您带来的不便之处,敬请原谅!谢谢!

更多关于云服务器域名注册虚拟主机的问题,请访问西部数码官网:www.west.cn
赞(0)
声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-62778877-8306;邮箱:fanjiao@west.cn。本站原创内容未经允许不得转载,或转载时需注明出处:西部数码知识库 » mssql数据库事务问题

登录

找回密码

注册