2

で日付ピッカーからの日付をテキストボックスに入力しCalendar1.SelectedDate.ToShortDateString();、その後、以下に示すクエリを使用してOracleデータベースに保存します

string query3 = "insert into leave_module1 values(:srno,:name,:desig,:tol,:compdates,:fd,:td,:nod,:da,:ds,st.nextval)";
OracleCommand cmd = new OracleCommand(query3, con);
try
{
    cmd.Parameters.Add(":srno", OracleType.Number, 8).Value = DropDownList2.Text;
    cmd.Parameters.Add(":name", OracleType.VarChar, 50).Value = TextBox8.Text;
    cmd.Parameters.Add(":desig", OracleType.VarChar, 30).Value = TextBox10.Text;
    cmd.Parameters.Add(":tol", OracleType.VarChar, 10).Value = DropDownList1.Text;
    cmd.Parameters.Add(":compdates", OracleType.VarChar, 30).Value = TextBox9.Text;
    cmd.Parameters.Add(":fd", OracleType.DateTime).Value = TextBox3.Text;
    cmd.Parameters.Add(":td", OracleType.DateTime).Value = TextBox4.Text;
    cmd.Parameters.Add(":nod", OracleType.Number, 3).Value = TextBox5.Text;
    cmd.Parameters.Add(":da", OracleType.DateTime).Value = TextBox11.Text;
    cmd.Parameters.Add(":ds", OracleType.DateTime).Value = TextBox7.Text;
    cmd.ExecuteNonQuery();
    ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('The Data has been added');window.location='Default2.aspx';</script>;");
}
catch
{
    Label13.Visible = true;
}

しかし、保存された日付を別のページにある GridView に入力すると、タイムスタンプを入力していなくてもタイムスタンプが取得されます。表示からタイムスタンプを削除する方法を教えてください!

前もって感謝します

これは、グリッドビューにデータを入力する方法です

protected void Button3_Click(object sender, EventArgs e)
{
    string v = System.Configuration.ConfigurationManager.ConnectionStrings["harish"].ConnectionString;
    con = new OracleConnection(v);
    con.Open();
    cmd = new OracleCommand("select *  from leave_module1 where srno='"+DropDownList1.Text+"'", con);
    dr = cmd.ExecuteReader();

    GridView1.DataSource = dr;
    GridView1.DataBind();
    con.Close();
    dr.Close();
}
4

4 に答える 4

2

したがって、データベースからすべての列を照会してから、列を自動生成しています。これが、すべての列が表示される理由です。これを解決するには

  1. 実際に必要な列のみを返すようにクエリを調整します
  2. 列の自動生成を無効にして、自分で列を定義します。

動作と出力をカスタマイズするためにコール制御を失うため、自動生成されたものを使用することはめったにありません。

于 2012-06-26T17:54:14.210 に答える
0

GridViewの[列の編集]に移動すると、[フィールド]ダイアログボックスが表示されます。時間部分を削除する日付フィールドを選択し、DataFormatStringプロパティに{0:d}と入力します。[OK]をクリックします。アプリを実行すると、gridview列には日付部分のみが表示されます。これは私のために働いたものです。プロシージャでの日付への変換は機能せず、RowDataBound()ハンドラでのフォーマットは面倒です。

ここに画像の説明を入力してください

于 2012-08-31T20:41:12.200 に答える
0

コードで指定した型は DateTime であるため、指定するかどうかに関係なく時間コンポーネントがあります。Oracle に Date 型があり (私は Oracle 関係者ではありませんが、現在のプロジェクトで Oracle とやり取りしています)、その変更を行うためのアクセス権がある場合、それが求めているものを取得する最も簡単な方法です。それ以外の場合は、データを使用して時間コンポーネントを削除するたびに .ToShortDateString() (または同等のもの) を指定する必要があります。

于 2012-06-26T17:52:33.523 に答える
0

タイムスタンプを削除してデータのみを表示するには、クエリまたはコード ビハインド (クエリで行います) でデータをフォーマットします。

于 2012-06-26T17:45:14.393 に答える