2016-01-12 5 views
2

Я работаю над приложением C#, которое будет использовать удаленную базу данных MySQL, расположенную на моем веб-сайте, размещенном на сервере Linux, с поддержкой PHP &.C# HttpWebRequest для datetimepicker

Я попытался получить выбранный и датированный в datagridview с помощью datetimepicker.

введите описание изображения здесь

моя форма содержит 2 DateTimePicker (DateTimePicker1 и dateTimePicker2), когда я нажимаю на кнопку. ему необходимо выполнить поиск с даты и по дате в таблице базы данных и показать его в datagridview.

i connect my datagridview в таблице базы данных. но моя проблема в том, что, когда я выбираю дату и нажимаю кнопку, datagridview становится пустым.

заполнить DataGridView с помощью PHP кодирования:

PHP FILE: (data.php)

<?php 
$servername = "***.**.***.***";  
$username = "root"; 
$password = "pasword"; 
$dbname = "databas"; 
$mysqli = new mysqli($servername, $username, $password, $dbname); 
if ($mysqli->connect_error) 
{ 
die("Connection failed: " . $mysqli->connect_error); 
} 
$result = $mysqli->query("SELECT calldate,time_interval,campaign,agent FROM aster"); 
while($row = mysqli_fetch_array($result)) 
{ 
    $rows[] = $row; 
} 
$result->close(); 
$mysqli->close(); 
print(json_encode($rows, JSON_NUMERIC_CHECK)); 
?> 

C# кодирование для занесения в DataGridView:

using Newtonsoft.Json; 
using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Net; 
using System.Text; 
using System.Windows.Forms; 

namespace HTTPDGV 
{ 
    public partial class Form2 : Form 
    { 
class User 
     { 
      [JsonProperty("calldate")] 
      public string calldate { get; set; } 

      [JsonProperty("time_interval")] 
      public string time_interval { get; set; } 

      [JsonProperty("campaign")] 
      public string campaign { get; set; } 

      [JsonProperty("agent")] 
      public string agent { get; set; } 
     } 
public Form2() 
     { 
      InitializeComponent(); 
     } 
    private void Form2_Load(object sender, EventArgs e) 
     { 
var request = (HttpWebRequest)WebRequest.Create("http://***.**.***.***/data.php"); 
      request.Method = WebRequestMethods.Http.Get; 
      request.Accept = "application/json"; 
      WebResponse response = request.GetResponse(); 
      Stream stream = response.GetResponseStream(); 
      StreamReader streamreader = new StreamReader(stream); 
      String json = streamreader.ReadToEnd(); 
      List<User> users = JsonConvert.DeserializeObject<List<User>>(json); 
      dataGridView1.DataSource = users;  
      } 
     } 
    } 
    } 

он работает хорошо ,

но вот моя моя проблема

PHP FILE: (time.php)

<?php 

$date1 = $_POST['calldate']; 
$date2 = $_POST['calldate']; 

$servername = "***.**.***.***"; 
$username = "root"; 
$password = "password"; 
$dbname = "database"; 
$mysqli = new mysqli($servername, $username, $password, $dbname); 
if ($mysqli->connect_error) 
{ 
die("Connection failed: " . $mysqli->connect_error); 
} 
$result = $mysqli->query("SELECT calldate,time_interval,campaign,agent FROM aster_agent_performance WHERE calldate BETWEEN'$date1'AND'$date2'"); 

while($row = mysqli_fetch_array($result)) 
{ 
    $rows[] = $row; 
} 
$result->close(); 
$mysqli->close(); 
print(json_encode($rows, JSON_NUMERIC_CHECK)); 
?> 

C# кодирование для DateTimePicker:

private void btnSearch_Click(object sender, EventArgs e) 
     { 
      var date1 = dateTimePicker1.Value.Date.ToString("yyyy-MM-dd"); 
      var date2 = dateTimePicker2.Value.Date.ToString("yyyy-MM-dd"); 

      HttpWebRequest myRequest =(HttpWebRequest)WebRequest.Create("http://***.**.***.***/time.php"); 
      myRequest.Method = "GET"; 
      using (WebResponse response = myRequest.GetResponse()) 
      { 
       using (Stream stream = response.GetResponseStream()) 
       { 
        XmlTextReader reader = new XmlTextReader(stream); 
        var buffer = Encoding.UTF8.GetBytes("calldate=" + date1 + "AND" + date2 + ""); 
        stream.Read(buffer, 0, buffer.Length); 
        StreamReader streamreader = new StreamReader(stream); 
        String json = streamreader.ReadToEnd(); 
        string date = JsonConvert.SerializeObject(json); 
        dataGridView1.DataSource = date; 
       } 
      } 
} 

, когда я нажимаю кнопку поиска datagridview пуст. пожалуйста, проверьте мое кодирование, где я делаю ошибку. Пожалуйста, предложите любые онлайн-ссылки или руководства.

Мой вопрос здесь: http://www.voidasks.com/c_httpwebrequest_for_datetimepicker#answers

Кто-нибудь есть какие-либо идеи об этом кодирования или кто-нибудь может сказать мне, если я делаю неправильно.

Спасибо

+0

'$ date1' и' $ date2' же '$ _POST' ввода? Вы уверены, что это правильно? – Matt

ответ

2

Попробуйте это:

private void btnSearch_Click(object sender, EventArgs e) 
{ 
    var date1 = dateTimePicker1.Value.Date.ToString("yyyy-MM-dd"); 
    var date2 = dateTimePicker2.Value.Date.ToString("yyyy-MM-dd"); 

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://***.**.***.***/time.php"); 
    request.Method = "POST"; 
    request.ContentType = "application/x-www-form-urlencoded"; 
    byte[] byteArray = Encoding.UTF8.GetBytes("fromdate= " + date1 + " & todate=" + date2); 
    request.ContentLength = byteArray.Length; 
    Stream stream = request.GetRequestStream(); 
    stream.Write(byteArray, 0, byteArray.Length); 
    HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
    StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); 
    String json = reader.ReadToEnd(); 
    List<Users> user = JsonConvert.DeserializeObject<List<Users>>(json); 
    dataGridView1.DataSource = user;