Estoy usando Request.Form para obtener el texto en el campo de entrada, sin embargo, el valor siempre está vacío. Estoy tratando de obtener el valor del texto en la etiqueta de entrada y consultar mi base de datos. Estoy usando un selector de fecha que escribe el valor en la etiqueta de entrada. He intentado escribir en un cuadro de texto asp, sin embargo, el problema es después de consultar la base de datos con el texto en TextBox. Cuando elijo una nueva fecha, el cuadro de texto no se actualiza con el nuevo valor de fecha del selector de fechas. Es por eso que estoy usando la etiqueta de entrada. El problema aquí es que Request.Form["input"] siempre obtiene una cadena vacía.
archivo .aspx
<form runat="server" method="post"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:Button ID="Button1" runat="server" Text="insert into db" OnClick="Button1_Click" /> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> </ContentTemplate> </asp:UpdatePanel> </form>guión.js
var picker = new Pikaday( { field: document.getElementById('input'), trigger: document.getElementById('scheduleDate'), minDate: new Date(Date.now()), disableDayFn: function (date) { // Disable Monday var allDates = date.getDate(); return date.getDay() === 6 || date.getDay() === 0; //block out dates that are fully booked. }, toString(date, format) { // using moment.js return moment(date).format('YYYY-MM-DD'); }, });archivo cs
protected void Button1_Click(object sender, EventArgs e) { string date = Request.Form["input"]; using (SqlConnection connection = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB; Integrated Security = True")) { //string selectquery = "SELECT * FROM Events"; string sqlquery = "INSERT INTO [Events] (start_date, end_date) VALUES ('" + date + "', '" + date + "')"; connection.Open(); SqlCommand command = new SqlCommand(sqlquery, connection); command.ExecuteNonQuery(); connection.Close(); } }No necesita (o quiere) usar request.form.
Simplemente suelte sus controles en la página. Y luego se pueden usar libremente en todo su código. Entonces, diga este marcado:
<ContentTemplate> <asp:Button ID="Button1" runat="server" Text="insert into db" OnClick="Button1_Click" /> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </ContentTemplate>Ahora, en su código?
DateTime MyDate = DateTime.Parse(TextBox2.Text); string MyTextBox1Text = TextBox1.Text;Entonces, en tu caso, estás buscando hacer esto:
using (SqlConnection conn = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB; Integrated Security = True")) { string sqlquery = "INSERT INTO [Events] (start_date, end_date) VALUES (@MyDate,@MyDate)"; using (SqlCommand command = new SqlCommand(sqlquery, conn)) { command.Parameters.Add("@MyDate", SqlDbType.Date).Value = TextBox1.Text; conn.Open(); command.ExecuteNonQuery(); } }