将sql代码放入c#代码时出错

将sql代码放入c#代码时出错,c#,sql,sql-server,C#,Sql,Sql Server,我的一个朋友有一个问题,她用c#做了一个项目,看起来一切都很好,但问题是,当她将SQL查询放入代码中时,它会出错,但当我们在microsoft SQL Server中尝试代码时,它会工作 下面是错误显示的代码示例: DataSet dsDelP = new DataSet(); string sql = ""; sql = "SELECT Grupi_ID, (p.emri + ' ' + p.mbiemri) as Profesori , k.EmriKlases as Klasa, d.em

我的一个朋友有一个问题,她用c#做了一个项目,看起来一切都很好,但问题是,当她将SQL查询放入代码中时,它会出错,但当我们在microsoft SQL Server中尝试代码时,它会工作

下面是错误显示的代码示例:

DataSet dsDelP = new DataSet();
string sql = "";
sql = "SELECT Grupi_ID, (p.emri + ' ' + p.mbiemri) as Profesori , k.EmriKlases as Klasa, d.emri as Dita, Ora_fillimit as Fillimi, Ora_mbarimit as Mbarimi";
sql += "FROM grupetOraret gro";
sql += "inner join Profesori p on gro.Profesori_ID=p.Profesor_ID";
sql += "inner join Klasa k on gro.Klasa_ID=k.Klasa_ID";
sql += "inner join Dita d on gro.ID_Dita=d.ID_dita";

SqlDataAdapter daDelP = new SqlDataAdapter(sql, con);
daDelP.Fill(dsDelP, "grupetOraret");
dataGridViewKerkoOrarin.DataSource = dsDelP.Tables[0].DefaultView;

串接字符串后,SQL如下所示:

SELECT ... as MbarimiFROM .... on gro.Profesori_ID=p.Profesor_IDinner ...
你没有空间。你应该在每一行(行尾)加上它们。假设查询本身是正确的(只要您已经检查了它),它应该是这样的:


附加到sql变量不会自动插入换行符,因此
sql
最终看起来像

...FROM grupetOraret groinner join Profesori p on gro.Profesori_ID=p.Profesor_ID...
请注意,
grupetOraret gro
内部连接之间没有空格

尝试对多行字符串文字使用
@
,使操作更简单、更高效:

string sql = @"
    SELECT Grupi_ID, (p.emri + ' ' + p.mbiemri) as Profesori , k.EmriKlases as Klasa, d.emri as Dita, Ora_fillimit as Fillimi, Ora_mbarimit as Mbarimi
    FROM grupetOraret gro
    inner join Profesori p on gro.Profesori_ID=p.Profesor_ID
    inner join Klasa k on gro.Klasa_ID=k.Klasa_ID
    inner join Dita d on gro.ID_Dita=d.ID_dita";

错误说明了什么?语法错误在“grupetOraret”附近@lonizenku如果您在调试中查看
sql
的结果值,您可以自己看到问题。你很好,我不能看…因为我不是在编写应用程序。我的朋友在做。她打电话给我,我们在电话里讨论,她给我发了一部分错误代码。无论如何,非常感谢
...FROM grupetOraret groinner join Profesori p on gro.Profesori_ID=p.Profesor_ID...
string sql = @"
    SELECT Grupi_ID, (p.emri + ' ' + p.mbiemri) as Profesori , k.EmriKlases as Klasa, d.emri as Dita, Ora_fillimit as Fillimi, Ora_mbarimit as Mbarimi
    FROM grupetOraret gro
    inner join Profesori p on gro.Profesori_ID=p.Profesor_ID
    inner join Klasa k on gro.Klasa_ID=k.Klasa_ID
    inner join Dita d on gro.ID_Dita=d.ID_dita";