选择语句

时间:2015-05-30 15:03:11

标签: c# mysql asp.net

我在设置数据源控件时asp.net/c#生成mySQL select语句的方式存在问题。

我很确定我的设置设置有误,但无法弄清楚它是什么。

    <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
        ConnectionString="<%$ ConnectionStrings:demers_dbConnectionString3 %>" 
        ProviderName="<%$ ConnectionStrings:demers_dbConnectionString3.ProviderName %>" 
        SelectCommand="SELECT * FROM [test_table]"></asp:SqlDataSource>

如您所见,test_table周围的括号是方形的,并且此语句会引发语法错误。

当我手动将括号更改为:

    <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
        ConnectionString="<%$ ConnectionStrings:demers_dbConnectionString3 %>" 
        ProviderName="<%$ ConnectionStrings:demers_dbConnectionString3.ProviderName %>" 
        SelectCommand="SELECT * FROM (test_table)"></asp:SqlDataSource>

错误消失,我的页面也会运行。

在开发我的网站时,我将不得不创建很多mySQL链接,所以我希望修复我错误的设置。

思想???

这是相关的配置文件。

    <?xml version="1.0"?>
    <configuration>
    <connectionStrings>
<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
    providerName="System.Data.SqlClient" />
    <add name="demers_dbConnectionString" connectionString="server=localhost;user id=MYID;password=MYPASSWORD;database=demers_db"
    providerName="MySql.Data.MySqlClient" />
    </connectionStrings>
    <system.web>
    <compilation debug="true" targetFramework="4.0" />

1 个答案:

答案 0 :(得分:0)

不需要那些[];因为您正在使用MySQL,所以您应该使用backtique(`)进行转义。您的select命令应该看起来像

SelectCommand="SELECT * FROM `test_table`" 

(或)就在下面,因为表名中没有空格

SelectCommand="SELECT * FROM test_table"

还要确保您使用的是MySQL连接器提供程序ProviderName="MySql.Data.MySqlClient"