我尝试从第一个表中获取4个名称,并检查其他20个组中每个名称出现4次频繁出现的频率,然后在groupevenfrequency上更新它。不过,我在编码上遇到了错误。欣赏是否有人可以提供帮助。谢谢。C#查询和字符串编码错误
从这个编码中,为什么str [1]和str [2]和str [3]和str [4]是相同的teachername?但是,SQL命令SELECT DISTINCT已经产生了4个不同的教师。请指教。
dbConnect = new SQLiteConnection("Data Source=school.db;Version=3;");
dbConnect.Open();
cmd = new SQLiteCommand();
cmd = dbConnect.CreateCommand();
cmd.CommandText = "SELECT DISTINCT Teacher_Name from " + myTeacher + " Order by Sum_Weekly_Credit desc LIMIT 4";
DataTable dt = new DataTable();
SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
da.Fill(dt);
string[] str = new string[5];
for (int i = 1; i <= 4; i++)
{
foreach (DataRow dr in dt.Rows)
{
str[i] = dr["Teacher_Name"].ToString();
cmd.ExecuteNonQuery();
}
}
dbConnect.Close();
dbConnect = new SQLiteConnection("Data Source=school.db;Version=3;");
dbConnect.Open();
cmd2 = new SQLiteCommand();
cmd2 = dbConnect.CreateCommand();
cmd3 = new SQLiteCommand();
cmd3 = dbConnect.CreateCommand();
for (int j = 1; j <= 20; j++)
{
cmd2.CommandText = "SELECT Subject FROM Group_Even_" + j + " WHERE Teacher_Name = @Teacher_Name1 OR Teacher_Name = @Teacher_Name2 OR Teacher_Name = @Teacher_Name3 OR Teacher_Name = @Teacher_Name4";
cmd2.Parameters.AddWithValue("@Teacher_Name1", str[1]);
cmd2.Parameters.AddWithValue("@Teacher_Name2", str[2]);
cmd2.Parameters.AddWithValue("@Teacher_Name3", str[3]);
cmd2.Parameters.AddWithValue("@Teacher_Name4", str[4]);
DataTable dt2 = new DataTable();
SQLiteDataAdapter da2 = new SQLiteDataAdapter(cmd2);
da2.Fill(dt2);
if (dt2.Rows.Count > 0)
{
int TempCountFrequency = dt2.Rows.Count;
cmd2.CommandText = "UPDATE GroupEvenFrequency SET GroupEven_Frequency = @GroupEven_Frequency WHERE GroupEven_Name = Group_Even_" + j + "";
cmd2.Parameters.AddWithValue("@GroupEven_Frequency", TempCountFrequency);
cmd2.ExecuteNonQuery();
}
else
{
continue;
}
}
当您使用编号表时,这通常表示设计不好。为什么不是那个数字在表格中追加到表格中而是在一个表格中? – CodeCaster
严格来说,在某些时候''SELECT Subject FROM Group_Even_“+ j'试图访问一个名为'Group_Even_7'的表,但是它看起来并不像它存在于你的数据库中。 @CodeCaster当然是正确的,就数据库设计而言,这段代码引发了各种各样的红旗。 –
它似乎你会有一个更好的设计与group_even作为1表“领域的”组“而不是20个不同的表 – BugFinder