2017-11-13 10 views
-1

私はこれをオンラインで見てみましたが、完全な説明なしにどのように質問を語るべきかわかりません。データセット内の日付書式を変更する

私は検索バーでウェブフォームを持っています。検索用語を入力すると、データベースに照会して情報を取得し、グリッドビューにデータを入力します。私は次のコードを使用しています。過去には

string find = "SELECT tblShipments.ShipmentID as [Shipment ID], tblShipmentsAssets.DateShip as [Date Shipped], FROM tblShipments INNER JOIN(tblAssets INNER JOIN tblShipmentsAssets ON tblAssets.AssetID = tblShipmentsAssets.AssetIDFK) ON tblShipments.ShipmentID = tblShipmentsAssets.ShipmentIDFK where(AssetIDFK like '%' + @assetidfk + '%')"; 

     OleDbCommand comm = new OleDbCommand(find, con); 
     comm.Parameters.Add("@assetidfk", OleDbType.Char).Value = TxtSearch.Text; 

     con.Open(); 
     comm.ExecuteNonQuery(); 
     OleDbDataAdapter da = new OleDbDataAdapter(); 
     da.SelectCommand = comm; 
     DataSet ds = new DataSet(); 
     da.Fill(ds, "AssetIDFK"); 
     SearchGridView.DataSource = ds; 
     SearchGridView.DataBind(); 

を、私は単に<asp:SqlDataSource>を使用してASPXコードでのみのGridViewを埋めてきたし、そこに私は<columns>タグをwithing日付を保持する列で取得することができたと私が望んでいたフォーマットを取得するにはDataFormatString="{0:d}"に追加します。

<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" HorizontalAlign="Center"> 
     <Columns> 
      <asp:BoundField DataField="NextCal" HeaderText="Calibration Due" DataFormatString="{0:d}" > 
      </asp:BoundField> 

     </Columns> 
</asp:GridView> 

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Database %>" ProviderName="<%$ ConnectionStrings:Database.ProviderName %>" SelectCommand="SELECT , [NextCal] FROM [tblAssets]"></asp:SqlDataSource> 

をGridViewのを埋めるの私のC#の方法では、私は、データ形式を変更する<Columns>セクションを持っていません。私は、私はコードの背後でこれを行う必要があると仮定しますが、私はそれを行う方法がわかりません。私が間違って何をやっていた考え出した

+0

期待どおりの形式で試してみてください。 'DataFormatString =" {0:MM/dd/yyyy hh:mm tt} "' – MethodMan

+0

これはうまくいった。しかし、新しい問題:セクションで私の日付の列が呼び出されたとき、そのデータを含む重複する列が追加されます。 1つは古い形式、もう1つは新しい形式です。 – Brock

+1

なぜこの行を使って選択クエリを実行しているのですか? 'comm.ExecuteNonQuery();'また、データテーブルを使ってクエリが重複を引っ張っていないことを確認します。 – MethodMan

答えて

0

<AutoGenerateColumns ="true">を有することにより、私の列は(大きな驚き)した自動的に生成され、その後、.aspxの中でタグの下の列に追加する私は、重複する列を生成していました。

<AutoGenerateColumns ="false">に変更し、手動でタグの下に自分の列を入力し、DataFormatString="{0:MM/dd/yyyy hh:mm tt}"を使用して日付形式を変更しました。

申し訳ありません。うまくいけば、誰かが同じミスを避けるのに役立ちます。

関連する問題