C# ExecuteOnQuery()-at System.RuntimeMethodHandle.InvokeMethod(对象目标、对象[]参数、签名符号、布尔构造函数)
使用SSIS的脚本组件执行C代码时,出现以下错误: 在System.RuntimeMethodHandle.InvokeMethodObject目标处,对象[]参数,签名符号,布尔构造函数 在System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternalObject obj中,对象[]参数,对象[]参数 在System.Reflection.RuntimeMethodInfo.InvokeObject obj中,BindingFlags invokeAttr、Binder Binder、Object[]参数、CultureInfo区域性 在System.RuntimeType.InvokeMemberString名称、BindingFlags BindingFlags、Binder Binder、对象目标、对象[]提供的参数、参数修改器[]修饰符、CultureInfo区域性、字符串[]namedParams 位于Microsoft.SqlServer.Dts.Tasks.ScriptTask.vstatasksscriptingengine.ExecuteScript 在这里,我正在读取一个excel文件,并在文件名上动态创建一个sql server表并加载数据。 在创建表时遇到此错误,尤其是在执行语句myCommand.ExecuteOnQuery时 参考代码:-C# ExecuteOnQuery()-at System.RuntimeMethodHandle.InvokeMethod(对象目标、对象[]参数、签名符号、布尔构造函数),c#,ssis,C#,Ssis,使用SSIS的脚本组件执行C代码时,出现以下错误: 在System.RuntimeMethodHandle.InvokeMethodObject目标处,对象[]参数,签名符号,布尔构造函数 在System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternalObject obj中,对象[]参数,对象[]参数 在System.Reflection.RuntimeMethodInfo.InvokeObject obj中,BindingFlags invo
SqlConnection myADONETConnection = new SqlConnection();
myADONETConnection = (SqlConnection)(Dts.Connections["LANDConn"].AcquireConnection(Dts.Transaction) as SqlConnection);
SqlCommand myCommand = new SqlCommand(tableDDL, myADONETConnection);
myCommand.ExecuteNonQuery();
我该怎么办?公用空主机
{
字符串FolderPath=Dts.Variables[User::FolderPath].Value.ToString
var directory=newdirectoryInfoFolderPath
FileInfo[]files=directory.GetFiles
字符串fileFullPath=
文件中的foreach FileInfo文件
{
}请调试并向我们显示您正在发送的sqlcommand。您的错误消息中没有错误。您没有发布足够的信息,任何人都无法帮助您。您好,我已使用上述代码从excel文件读取数据,并从这些excel文件动态创建表。但是,收到提到的错误消息是错误的特别是在myCommand.ExecuteNonQuery;行。请任何人建议任何选项来更正我。。
string filename = "";
fileFullPath = FolderPath+"\\"+file.Name;
filename = file.Name.Replace(".xlsx","");
string ConStr;
string HDR;
HDR="YES";
ConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
fileFullPath + ";Extended Properties=\"Excel 12.0;HDR=" +
HDR + ";IMEX=1\"";
OleDbConnection cnn = new OleDbConnection(ConStr);
cnn.Open();
DataTable dtSheet = cnn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
null);
string sheetname;
sheetname="";
foreach (DataRow drSheet in dtSheet.Rows)
{
if (drSheet["TABLE_NAME"].ToString().Contains("$"))
{
sheetname=drSheet["TABLE_NAME"].ToString();
OleDbCommand oconn = new OleDbCommand("select * from [" +
sheetname + "]", cnn);
OleDbDataAdapter adp = new OleDbDataAdapter(oconn);
DataTable dt = new DataTable();
adp.Fill(dt);
string tableDDL = "";
tableDDL += "IF Not EXISTS (SELECT * FROM sys.objects WHERE
object_id = ";
tableDDL +="OBJECT_ID(N'[dbo].[" + filename +"]') AND
type in (N'U'))";
tableDDL += "Create table [" + filename + "]";
tableDDL += "(";
for (int i = 0; i < dt.Columns.Count; i++)
{
if (i != dt.Columns.Count - 1)
tableDDL += "[" + dt.Columns[i].ColumnName + "] "
+ "NVarchar(max)" + ",";
else
tableDDL += "[" + dt.Columns[i].ColumnName + "] "
+ "NVarchar(max)";
}
tableDDL += ")";
SqlConnection myADONETConnection = new SqlConnection();
myADONETConnection = (SqlConnection)
(Dts.Connections["Connection
Manager"].AcquireConnection(Dts.Transaction) as
SqlConnection);
SqlCommand myCommand = new SqlCommand(tableDDL,
myADONETConnection);
myCommand.ExecuteNonQuery();
//Load the data from DataTable to SQL Server Table.
SqlBulkCopy blk = new SqlBulkCopy(myADONETConnection);
blk.DestinationTableName = "[" + filename +"]";
blk.WriteToServer(dt);
}
}