Ich arbeite in einem SSIS-Paket. Ich habe ein C# -Skript zum Platzieren von Tabellennamen in eine Objektvariable (Zugriffstabellen). Der Code stellt eine Verbindung zu einer Access DB her und führt Schleifen für Tabellen durch, die ihre Namen in die Variable aufnehmen.C# Hinzufügen von '[' ']' zu Variable für TableName Verwendung
die Zuordnung geht wie folgt:
using System;
using System.Collections;
using System.Data;
using System.Data.OleDb;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
namespace ST_9b2714c55db14556be74ca92f345c4e3.csproj
{
[System.AddIn.AddIn("ScriptMain", Version = "1.0", Publisher = "", Description = "")]
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{
#region VSTA generated code
enum ScriptResults
{
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
};
#endregion
public void Main()
{
Variables varCollection = null;
DataTable schemaTables = null;
ArrayList tableNames = new ArrayList();
Dts.VariableDispenser.LockForWrite("User::AccessTables");
Dts.VariableDispenser.GetVariables(ref varCollection);
using (OleDbConnection connection = new OleDbConnection(Dts.Connections["TE030698.Bases"].ConnectionString.ToString()))
{
string[] restrictions = new string[4];
restrictions[3] = "Table";
connection.Open();
schemaTables = connection.GetSchema("Tables", restrictions);
}
foreach (DataRow row in schemaTables.Rows)
{
foreach (DataColumn column in schemaTables.Columns)
{
if (column.ColumnName.ToUpper() == "TABLE_NAME")
{
tableNames.Add(row[column].ToString());
}
}
}
varCollection["User::AccessTables"].Value = tableNames;
Dts.TaskResult = (int)ScriptResults.Success;
Problem ist einige Tabellen mit Zahlen beginnen oder Leerzeichen enthalten. Also brauche ich die Namen in []. 2012 ist ein Tisch, aber ich brauche es [2012]. Wie kann ich den C# -Code ändern, um das zu tun?
Ich bin ziemlich neu in C#, so dass jeder Rat sehr geschätzt werden würde. Dank
http://mattgememm.com/2008/12/08/what-have-you-tried/ –
Ehm, Sie schreiben "[" + name + "]"? Ich bin mir nicht sicher, was das Problem ist. Das einzige Problem, das ich sehen kann, ist mit dem Namensraum. –
Was ist 2012? Ich sehe es im obigen Code nicht? – MoonKnight