Get the parameter prefix in ADO.NET

后端 未结 2 1679
南旧
南旧 2021-02-09 08:30

I want to generate several SQL statements based on a column list using the column names as parameters.

Edit: C#

var columns = new string         


        
2条回答
  •  离开以前
    2021-02-09 08:59

    I found the answer, but I cannot reproduce how I found it:

    http://www.codewrecks.com/blog/index.php/2007/09/06/about-parametermarkerformat/

    The DbConnection can provide a schema table that also contains the correct format strings for creating command parameter names, except for SqlClient!!

    DbProviderFactory myFactory = DbProviderFactories.GetFactory(myProviderName);
    
    using (DbConnection myConnection = myFactory.CreateConnection())
    {
        myConnection.ConnectionString = mySettings.ConnectionString;
        myConnection.Open();
    
        string parameterMarker = myConnection
            .GetSchema(DbMetaDataCollectionNames.DataSourceInformation)
            .Rows[0][DbMetaDataColumnNames.ParameterMarkerFormat].ToString();
    
        myConnection.Close();
    }
    

    For SqlCclient parameterMarker is {0} but should be @{0}. I'll investigate a bit more to find out what is contained in the other schema table columns.

提交回复
热议问题