C# Asp.NetはDetailsView編集状態から入力ボックスの内容を取得し、sql文where条件として別のテーブル属性値を取得し、値をDetailsViewInsertingイベントに割り当てる

2823 ワード

今日は同級生がaspに聞いてくれた.Netの宿題の問題、彼は図書館管理のプロジェクトをして、それからこのような機能を実現したいと思っています.すなわち、図書リストのページがあります.リストの中の本名をクリックすると、借書記録のページにジャンプして、それから学号を入力するための入力ボックスがあります.学号を入力して挿入をクリックすると、自動的に書籍名、借書時間、学号、学生の名前が生成されます.学生の連絡先などを含む借書注文記録;
本の名前の生成はとても良くて、直接文字列のGetの方法を要求することを通じて(通って)手に入れて、本を借りる时间は更に简単で、直接システムの现在の时间を取得して、どのように名前と连络先を取得して彼を困らせて、别の1枚の表(学生の情报の表)の中から名前と连络先の値を手に入れます(しかも彼の入力した学号を通じて(通って)フィルタリングします);
実は私は前にすでに実現した論理について話したことがあります.論理は簡単で、彼が学号という情報を挿入する時、学号の値を手に入れて、それからデータベースに接続して、学生情報表の学号と比較して(where句)、表の中で手に入れた名前と連係方式の値を読み取って、読み取った値を挿入する属性に与えて、このように1枚の完全な情報を持つ借書記録を生成しました.
論理的には問題はありませんが、具体的に実現するには多くの煩雑な細部に関連しているので、しばらくは彼を困らせて、今日また私に聞いて、私もいくつかのブログを見て、すべてばらばらな技術の細部ですが、組み合わせても私にそれを実現することに成功させて、途中で何度も異常にぶつかって、しかしすべて小さい問題で、下に完全なバックグラウンドの実現コードを添付します.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
    protected string shu( object sh) {
      
        string shum = Request.QueryString.Get("   ");
        return shum;
    }
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void DetailsView1_ItemInserting(object sender, DetailsViewInsertEventArgs e)
    {
        
        SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\        .mdf;Integrated Security=True;User Instance=True");
        using(conn)
        {
            conn.Open();

            //      
            SqlParameter[] mysqlpara1 = new SqlParameter[2];
            mysqlpara1[0] = new SqlParameter("@uid", SqlDbType.NChar, 10);
            mysqlpara1[0].Value = ((TextBox)this.DetailsView1.FindControl("TextBox2")).Text.Trim();

            //   DetailsView TextBox2    
            string uid = ((TextBox)this.DetailsView1.FindControl("TextBox2")).Text.Trim();
            SqlCommand cmd = conn.CreateCommand();

            //      @uid
            cmd.Parameters.AddWithValue("@uid",uid);
            //      
            cmd.CommandText = "SELECT * FROM [Student] WHERE    = @uid";

            //       
            SqlDataReader reader = cmd.ExecuteReader();
            while(reader.Read())
            {
                string name = reader.GetString(reader.GetOrdinal("  "));
                string tel = reader.GetString(reader.GetOrdinal("    "));
                //              
                e.Values["  "] = name;
                e.Values["    "] = tel;
            }

        }
        e.Values["    "] = DateTime.Now;
        e.Values["   "] = Request.QueryString.Get("   ");
        

    }
}

C#が好きなネットユーザーの交流を歓迎します!