Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查询在SQL Server管理研究中运行良好,但未通过我的Windows窗体应用程序(C#)运行_C#_Sql Server_Oracle_Winforms_Linked Server - Fatal编程技术网

查询在SQL Server管理研究中运行良好,但未通过我的Windows窗体应用程序(C#)运行

查询在SQL Server管理研究中运行良好,但未通过我的Windows窗体应用程序(C#)运行,c#,sql-server,oracle,winforms,linked-server,C#,Sql Server,Oracle,Winforms,Linked Server,我正在开发一个将数据从SQL SERVER传输到ORACLE的应用程序。我在sql server中有一个oracle的链接对象,我将数据直接从sql server插入到oracle(这是必需的)。问题是,我的INSERT语句给了我错误 当我通过我的应用程序执行它时,它在SQLServerManagementStudio中完美地运行。以下是插入查询: INSERT INTO OPENQUERY(ORACLE, 'SELECT * FROM DB.SQL_table') SELECT * FROM

我正在开发一个将数据从SQL SERVER传输到ORACLE的应用程序。我在sql server中有一个oracle的链接对象,我将数据直接从sql server插入到oracle(这是必需的)。问题是,我的INSERT语句给了我错误

当我通过我的应用程序执行它时,它在SQLServerManagementStudio中完美地运行。以下是插入查询:

INSERT INTO OPENQUERY(ORACLE, 'SELECT * FROM DB.SQL_table') SELECT * FROM table where c_date = '20170316';
这是我的代码:

sql_command = new SqlCommand();
                sql_command.Connection = mssql;
                ora_command = new OracleCommand();
                ora_command.Connection = oracle;
                string sub_query = "SELECT COUNT(*) FROM table T WHERE T.C_Date = '" + date.Year + month + day + "'";
                sql_command.CommandText = sub_query;
                var sql_c = sql_command.ExecuteScalar();

                string ora_query = "SELECT COUNT(*) FROM SQL_table T WHERE T.C_Date = '" + date.Year + month + day + "'";
                ora_command.CommandText = ora_query;
                var ora_c = ora_command.ExecuteScalar();

                if (Convert.ToInt32(sql_c)!=Convert.ToInt32(ora_c))
                {
                    sql_command.CommandText = "INSERT INTO OPENQUERY(ORACLE, 'SELECT * FROM DB.SQL_table') SELECT * FROM table where c_date = '" + date.Year + month + day + "';";
                    var sql_count = sql_command.ExecuteNonQuery();

                    if (Convert.ToInt32(sql_count) != 0)
                    {
                        Status = "Done Uploading Data.\n\nLast Updated on " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");

                    }
                    else
                    {
                        Status = "Some Error Occured, Please Check.\n\nLast Checked on " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
                    }
                }
                else
                {
                    Status = "No missing data found.\n\nLast Checked on " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
                }

PS:如果您需要更多信息,我随时准备提供。

检查
date.Year+month+day
value。可能您传递了一个不返回任何内容的错误值?我怀疑
DB。SQL\u表
的列计数彼此不同(更具体地说,
SQL\u表
的列数比
多/少),因此它不会工作。那么,您能提供这两个表的列列表吗?您的大多数代码(在查询执行之前和之后)似乎与问题无关。是否可以将其减少到必要的最小值?检查表的架构。非常感谢大家,这是IDE的问题。重新启动IDE并重建解决方案解决了我的问题。非常感谢大家的回复。请检查
date.Year+month+day
value。可能您传递了一个不返回任何内容的错误值?我怀疑
DB。SQL\u表
的列计数彼此不同(更具体地说,
SQL\u表
的列数比
多/少),因此它不会工作。那么,您能提供这两个表的列列表吗?您的大多数代码(在查询执行之前和之后)似乎与问题无关。是否可以将其减少到必要的最小值?检查表的架构。非常感谢大家,这是IDE的问题。重新启动IDE并重建解决方案解决了我的问题。非常感谢大家的回复。