0
我有一个问题,这是我的代码:应用程序不运行它,直接坠毁后,我开始它
DataTable DT1 = new DataTable();
public static DataTable DATASETRETURN(string queryString)
{
DataSet DS = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter
{
SelectCommand = new SqlCommand(queryString, CLSERVICES.CON)
};
adapter.Fill(DS, "TABLE");
return DS.Tables["TABLE"];
}
private void FE_C_HISTORIQUE_Load(object sender, EventArgs e)
{
E_HISTORIQUE_LV_HISTORIQUE_04.Items.Clear();
string req = "select H.NHistorique, P.Intitulle, H.QuantiteVendu, P.PrixVente,"+
"(P.PrixVente * H.QuantiteVendu) as PQ, H.TypeAction, H.DateAction " +
"from HISTORIQUE as H, PRODUIT as P" +
"where (P.NProduit = H.NProduit)"+
"order by H.NHistorique desc";
DT1 = DATASETRETURN(req);
for (int i = 0; i < DT1.Rows.Count; i++)
{
ListViewItem LV = new ListViewItem(DT2.Rows[i][0].ToString());
LV.SubItems.Add(DT1.Rows[i][1].ToString());
LV.SubItems.Add(DT1.Rows[i][2].ToString());
LV.SubItems.Add(DT1.Rows[i][3].ToString());
LV.SubItems.Add(DT1.Rows[i][4].ToString());
LV.SubItems.Add(DT1.Rows[i][5].ToString());
LV.SubItems.Add(DT1.Rows[i][6].ToString());
E_HISTORIQUE_LV_HISTORIQUE_04.Items.Add(LV);
}
}
我运行应用程序后,我得到了方法DATASETRETURN
错误OIN行
adapter.Fill(DS, "TABLE");
的错误是:
System.Data.SqlClient.SqlException “\” P \”是不是一个公认的表提示选项。如果它的目的是作为一个参数表值函数或CHANGETABLE功能,确保您的数据库兼容模式设置为90。”
是否有什么方法解决?造成
你错过了一些sql字符串末尾的空格。例如,“...... PRODUIT as Pwhere(P.NProduit ...”) – astidham2003
在调试器的'DT1 = DATASETRETURN'处设置一个断点,并查看'req'包含的内容 –
[踢坏坏习惯: style JOINs](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx) - 旧式* comma-在ANSI - ** 92 ** SQL标准(** 25年**之前)中,*表格的分隔列表* style被替换为* proper * ANSI'JOIN'语法,并且不鼓励使用 –