propiedad Connection en TableAdapters se define como interna.
internal global::System.Data.SqlClient.SqlConnection Connection
lo tanto, en caso de que su TypedDataset no está en la misma Asamblea que sus ventanas principales formas aplicación, usted no será capaz de acceso a la propiedad de conexión. Este problema puede aparecer más adelante cuando refactorice el código de su conjunto de datos y muévalo en un proyecto separado que producirá su propio ensamblaje independiente.
Para resolver este problema, puede hacer lo que se menciona a continuación.
crear una clase parcial para su TableAdapter y agregar otro constructor al lado del constructor público sin parámetros predeterminado. Suponiendo tipo TableAdapter como MyTableAdapter
public partial class MyTableAdapter
{
public MyTableAdapter(SqlConnection connection)
{
thisSetConnection(connection);
this.ClearBeforeFill = true;
}
public void SetConnection(SqlConnection connection)
{
this._connection = connection;
}
}
Tendrá que hacer esto para todos los que TableAdapters que tiene en su proyecto. TableAdapter no tiene ninguna clase base común, pero gracias a que se declaran como clases parciales, podemos hacerlo del modo mencionado anteriormente.
Ahora en tiempo de ejecución, puede crear una instancia de su TableAdapter como esto ..
SqlConnection connection;
//create the connection here at runtime..
MyTableAdapter adapter = new MyTableAdapter(connection);
o puede ser incluso asignar más tarde después de crear la instancia con TableAdapter sin parámetros por defecto constructor público ..
SqlConnection connection;
//create the connection here at runtime..
MyTableAdapter adapter = new MyTableAdapter();
adapter.(connection);
A partir de VS2010 la visibilidad de la conexión puede ser s pecificado (p. public) y se puede especificar una Clase base para los DataTableAdapters generados ... (es decir, esta publicación está relacionada principalmente con VS2008 y problemas anteriores :-) –