0

ここでは、データベース STUD_DB から 3 つの列、studentlastname、studentfirstname、studentmiddleinitial を選択することを目指しているので、コードは次のとおりです。

    public string selectname(string email)
{
    string name;
    SqlConnection con = new SqlConnection(constr);
    string select = "SELECT studentlastname,studentfirstname,studentmiddleinitial FROM STUD_DB WHERE emailaddress = @mail";
    SqlCommand sel = new SqlCommand(select, con);

    sel.Parameters.Add("@mail", email);

    //this is where idk what to do. 
}

私の懸念は、3 つの列を選択した後、それらを別々の変数に配置し、それらを 1 つの文字列に結合して学生のフルネームにしたいのですが、その部分をコーディングする方法がわかりません。:) 回答をお待ちしております。:)

4

3 に答える 3

1

コードはデータベースからデータを正しくロードします (常にパラメーター化されたクエリを使用し、文字列連結は使用しないでください)。SqlDataReaderによって取得されたデータを読み取るだけで済みます。

public string selectname(string email) 
{ 
    string name; 
    using(SqlConnection con = new SqlConnection(constr))
    {
        string select = "SELECT studentlastname,studentfirstname,studentmiddleinitial " + 
                        "FROM STUD_DB WHERE emailaddress = @mail"; 
        SqlCommand sel = new SqlCommand(select, con); 
        sel.Parameters.Add("@mail", email);
        SqlDataReader dr = sel.ExecuteReader();
        while(dr.Read())
            name = string.Join(" ", dr.GetString(0), dr.GetString(1), dr.GetString(2));
    }
    return name;
}

また、 using ステートメントは本当に命の恩人です。これにより、接続を閉じる/破棄することを忘れることがなくなります。

于 2012-08-12T10:23:31.790 に答える
1

クエリでフル ネームを組み合わせることができます。

const string @select = "SELECT studentlastname + ' ' " +
                               "+ studentfirstname + ' ' " +
                               "+ studentmiddleinitial as FullName " +
                               "FROM STUD_DB WHERE emailaddress = @mail";


using (var connection = new SqlConnection(constr))
{
    using (var command = new SqlCommand(select, connection))
    {
        connection.Open();
        command.Parameters.Add("mail", email);
        return command.ExecuteScalar() as string;
    }
}
于 2012-08-12T10:37:22.800 に答える
-1

パラメータを使用したくない場合は、単純に文字列を追加できます。最も自慢できる解決策ではありませんが、うまくいきます。

private void GetData(String email)
{
  String sqlStatement = "select * from Programs where Something = " + email;
  try
  {
    using (SqlDataAdapter adapter = new SqlDataAdapter(sqlStatement, _CONNECTION_STRING))
    {
      DataSet dataSet = new DataSet("Items");
      adapter.Fill(dataSet, "Items");
    }
    }
  catch (Exception) { }
  // Here you just type "dataSet." and the intellisense will 
  // present you with options to access the tables, rows etc.
}
于 2012-08-12T10:07:19.730 に答える