0
私のプロジェクトには2つのdropdownlist
があります。私のプロジェクト全体で1つを使用しますconnectionstring
しかし、これらの2つのドロップダウンリストに対して、私は別のものを使いたいですconnectionstring
カスケードドロップダウンリストに異なる接続文字列を使用
私はweb.config
ファイルにすべての接続文字列を定義しました。以下のコードは: -
<td style="width: 15%" class="field">
<select id="cmbRecdDept" runat="server" style="width: 25%" onchange="FunEmpFillDept()">
<option value="0">--Select--</option>
</select>
</td>
<td style="width: 15%" class="field">
<select id="cmbRecdEmp" runat="server" style="width: 25%" onchange="FunSelEmpRecd()">
<option value="0">--Select--</option>
</select>
</td>
とコードが後ろ
ObjPriDT = ObjPriDal.ExecuteDataTable("select distinct master_mkey, Type_Desc from type_mst_a a join emp_mst b on a. master_mkey=b.department_mkey where b.status in ('A','S','R') order by Type_Desc");
cmbRecdDept.DataSource = ObjPriDT;
cmbRecdDept.DataTextField = "Type_Desc";
cmbRecdDept.DataValueField = "master_mkey";
cmbRecdDept.DataBind();
cmbRecdDept.Items.Insert(0, new ListItem("---Select---", "0"));
及びコードIは、第二のリストを結合する最初のリスト、のonchange
ことは、以下である: -
function FunEmpFillDept() {
document.getElementById('cmbRecdEmp').innerHTML = "";
var ObjPriOption = document.createElement("Option");
ObjPriOption.text = "ALL";
ObjPriOption.value = "0";
//document.getElementById('txtEmpID').value="0";
document.getElementById('cmbRecdEmp').add(ObjPriOption);
StrPriFnName = "FunFillEmp(" + document.getElementById('cmbRecdDept').value + ")";
var ObjPriXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
ObjPriXMLHTTP.open("GET", "FrmInwardXMLHTTP.aspx?para=" + StrPriFnName, false);
ObjPriXMLHTTP.send("");
if (ObjPriXMLHTTP.responseText != "") {
StrPriRow = ObjPriXMLHTTP.responseText.split('|');
for (IntPriI = 0; IntPriI < StrPriRow.length - 1; IntPriI++) {
StrPriCol = StrPriRow[IntPriI].split('~');
var ObjPriOption = document.createElement("Option");
ObjPriOption.text = StrPriCol[1];
ObjPriOption.value = StrPriCol[0];
document.getElementById('cmbRecdEmp').add(ObjPriOption);
}
}
}
とその機能FunFillEmp
は、
public static string FunFillEmp(object[] args)
{
string StrPriReturn = "";
DataAccessLayer ObjPriDt = new DataAccessLayer();
DataTable dt = new DataTable();
dt = ObjPriDt.ExecuteDataTable("select mkey,Emp_Name,emp_card_no from emp_mst where department_mkey=" + args[0].ToString() + " and status in ('A','S','R') order by 2");
if (dt.Rows.Count > 0)
{
for (int IntpriI = 0; IntpriI < dt.Rows.Count; IntpriI++)
{
StrPriReturn += dt.Rows[IntpriI][0].ToString() + "~" + dt.Rows[IntpriI][1].ToString() + "~" + dt.Rows[IntpriI][2].ToString() + "|";
}
}
return StrPriReturn;
}
この二つのDropDownList
UPDATEに対して異なるconnectionstring
を使用する方法
マイdataAccesslayerコードあなたがあなたのDataAccessLayerクラスを変更する必要がありそうです
public DataAccessLayer(string connectionstring, Providers provider)
{
strConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
switch (provider)
{
case Providers.SqlServer:
objFactory = SqlClientFactory.Instance;
break;
case Providers.OleDb:
objFactory = OleDbFactory.Instance;
break;
case Providers.Oracle:
objFactory = OracleClientFactory.Instance;
break;
case Providers.ODBC:
objFactory = OdbcFactory.Instance;
break;
case Providers.ConfigDefined:
string providername = ConfigurationManager.ConnectionStrings["ConnectionString"].ProviderName;
switch (providername)
{
case "System.Data.SqlClient":
objFactory = SqlClientFactory.Instance;
break;
case "System.Data.OleDb":
objFactory = OleDbFactory.Instance;
break;
case "System.Data.OracleClient":
objFactory = OracleClientFactory.Instance;
break;
case "System.Data.Odbc":
objFactory = OdbcFactory.Instance;
break;
}
break;
}
objConnection = objFactory.CreateConnection();
objCommand = objFactory.CreateCommand();
objConnection.ConnectionString = strConnectionString;
objCommand.Connection = objConnection;
}
これだけの情報が十分でない場合
例えば、それを指定し、他の接続のために
(SQL Server用)として、それをインスタンス化答えに合うように親切に多くの理解のためのいくつかのコードを示してください。疑問がある場合は最初にコメントしてクリアしてください – BNN
投稿者DataAccessLayerクラスコード –
更新された質問を確認してください – BNN