-1

私の友人が問題を抱えています。彼女は C# でプロジェクトを行い、すべて問題ないように見えますが、問題は、SQL クエリをコードに入れるとエラーが発生することですが、Microsoft SQL でコードを試すと、サーバーは動作します。

エラーが表示されるコードの例を次に示します。

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;
4

3 に答える 3

1

スペースがありません。それらをすべての行に追加する必要があります (最初または最後に)。これは、クエリ自体が正しいと仮定すると、次のようになります。

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 ";
于 2012-12-26T01:13:57.457 に答える
0

文字列が連結された後、SQL は次のようになります。

SELECT ... as MbarimiFROM .... on gro.Profesori_ID= p.Profesor_IDinner ...

各行の最後の単語と次の行の最初の単語の間にスペースが必要です。

string sql = "... as Mbarimi";
sql += " FROM ...";
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";
于 2012-12-26T01:13:02.873 に答える
0

sql 変数に追加しても改行は自動的に挿入されないため、次のようsqlになります。

...FROM grupetOraret groinner join Profesori p on gro.Profesori_ID=p.Profesor_ID...

grupetOraret groinner joinの間にスペースを入れないでください。

複数行の文字列リテラルに使用@してみてください。これにより、作業がより簡単かつ効率的になります。

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";
于 2012-12-26T01:15:09.770 に答える