Excel QueryTable参数不绑定Sql参数

时间:2012-08-22 23:17:57

标签: sql excel parameters

我是Excel开发的新手,我有一个问题,它让我发疯。我希望你能帮助我。 让我解释一下情况, 我正在尝试创建一个QueryTable来从SQL导入数据,但是...我现在得到一个错误来刷新QueryTable, 错误消息表明我没有传递所需参数的值。 (它的编码很难:[)

经过几个小时的调查,我无法找到解决方案或示例来指导我...而且我在这里: 我不知道我做错了什么,这里有一些代码

foreach (Range row in main.Rows)
    {
            //row.Clear();
            rowID = row.Row;
            if (string.IsNullOrEmpty(getAccounts(rowID, columnID)) )  
                continue;

            /*  string connectionString = // \"
                    string.Format("OLEDB;Provider=SQLOLEDB;Data Source={0};Initial Catalog={1};User ID={2};Password={3}",
             */      

            //string sql = "EXECUTE [Funciones].[Cuenta_Saldo_Anho] ?,?";
            //if (!string.IsNullOrEmpty(txtTipoSaldo.Text)) sql +=  ",?";

           string sql = "{CALL [Funciones].[Cuenta_Saldo_Anho] (?, ?";
           sql += (!string.IsNullOrEmpty(txtTipoSaldo.Text))? "" : ", ?" + ")}"; // optional parameter

           var qt = wSheet.QueryTables.Add( connectionString, row.Cells , sql);
           qt.CommandType = XlCmdType.xlCmdSql;

           var ctas = qt.Parameters.Add("@ctas", XlParameterDataType.xlParamTypeLongVarChar);
           //ctas.SetParam(XlParameterType.xlConstant, cuentas);
           ctas.SetParam(XlParameterType.xlRange, wSheet.Cells[rowID, columnID]));
           ctas.RefreshOnChange = true;

           qt.Parameters.Add("@anho", XlParameterDataType.xlParamTypeInteger)
 .SetParam(XlParameterType.xlConstant, Int32.Parse(anho));

           qt.Parameters.Add("@tipoSaldo", XlParameterDataType.xlParamTypeVarChar)
 .SetParam(XlParameterType.xlConstant, txtTipoSaldo.Text);

            //qt.BackgroundQuery = true;
            qt.FieldNames = false;
            qt.AdjustColumnWidth = false;
            qt.RefreshOnFileOpen = false;
            qt.Refresh();
      }

欢迎任何帮助。感谢。

0 个答案:

没有答案