我在设置数据源控件时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" />
答案 0 :(得分:0)
不需要那些[]
;因为您正在使用MySQL
,所以您应该使用backtique(`)进行转义。您的select命令应该看起来像
SelectCommand="SELECT * FROM `test_table`"
(或)就在下面,因为表名中没有空格
SelectCommand="SELECT * FROM test_table"
还要确保您使用的是MySQL连接器提供程序ProviderName="MySql.Data.MySqlClient"