从数据库的下拉列表中选择指定ID的值

时间:2017-02-04 15:50:25

标签: c# mysql

我正在尝试从下拉列表中读取值并显示到几个文本框中。使用c#和MySQL作为db。

我有三张桌子:产品,汽车,颜色。 有一个下拉列表和3个文本框。

我不知道如何将产品列入下拉列表,并在选择产品后显示指定的"属性"在每个文本框中。

选择产品1(下拉列表) - >显示BMW(第一个文本框)绿色(第二个txtbox)。

每件产品都是静态的" Car"和"颜色" 。产品的财产永远不会改变。它们是独一无二的。

1 个答案:

答案 0 :(得分:0)

以此为例

Table 1 Product
id|name
--------
1 | Car
2 | car


Table 2 Type
id|model
--------
1 | BMW
2 | Mercedes

Table 2 Color
id|car_color
------------
1 | Green
2 | Yellow

助手班

class MySQLClass : IDisposable
{
    // Connection string need to be replaced for secure purpuose
    private static string connString = @"Server=xxxx;uid=xxxx;pwd=xxxxx;database=xxxxxx";
    /// <summary>
    /// OdbcConnection : This is the connection
    /// </summary>
    SqlConnection oConnection;
    /// <summary>
    /// OdbcCommand : This is the command
    /// </summary>
    SqlCommand oCommand;
    /// <summary>
    /// Constructor: This is the constructor
    /// </summary>
    /// <param name="DataSourceName">string: This is the data source name</param>
    public MySQLClass()
    {
        //Instantiate the connection
        oConnection = new SqlConnection(connString);
        try
        {
            //Open the connection
            oConnection.Open();
            //Notify the user that the connection is opened
            //Console.WriteLine("The connection is established with the database");
        }
        catch (OdbcException caught)
        {
            Console.WriteLine(caught.Message);
            Console.Read();
        }
    }
    /// <summary>
    /// void: It is used to close the connection if you work within disconnected
    /// mode
    /// </summary>
    public void CloseConnection()
    {
        oConnection.Close();
    }
    /// <summary>
    /// OdbcCommand: This function returns a valid odbc connection
    /// </summary>
    /// <param name="Query">string: This is the MySQL query</param>
    /// <returns></returns>
    public SqlCommand GetCommand(string Query)
    {
        oCommand = new SqlCommand();
        oCommand.Connection = oConnection;
        oCommand.CommandText = Query;
        return oCommand;
    }
    /// <summary>
    /// void: This method close the actual connection
    /// </summary>
    public void Dispose()
    {
        oConnection.Close();
    }
}

用法

DataTable dt = new DataTable();
using (MySQLClass o = new MySQLClass())
{
    string sql = @"
        SELECT Product.id, Product.name, Type.model, Color.car_color FROM Product 
        INNER JOIN Type ON Product.id = Type.id 
            INNER JOIN Color ON Type.id = Color.id;

    ";
    SqlCommand oCommand = o.GetCommand(sql);
    SqlDataAdapter adapter = new SqlDataAdapter(oCommand);
    adapter.Fill(dt);


    // ddList is your dropDownList
    ddList.DataSource = dt;
    ddList.DataTextField = "name";
    ddList.DataValueField = "id";
    ddList.DataBind();
}

然后在你的evet上使用你需要的所有东西。