Tôi đang làm việc trên một dự án mà tôi có một biểu mẫu mà qua đó tôi có thể chỉnh sửa câu hỏi có sẵn trong chế độ xem danh sách. Bất cứ khi nào tôi chọn một hàng từ chế độ xem danh sách và nhấp vào nút 'sửa đổi', các hộp văn bản phía trên chế độ xem danh sách sẽ tải câu hỏi và các tùy chọn của nó. Điều này có nghĩa là khi tôi chọn một hàng trong chế độ xem danh sách và nhấp vào nút 'sửa đổi', câu hỏi sẽ tải chính nó vào các hộp văn bản. Tôi chỉnh sửa câu hỏi ở đó và nhấp vào 'lưu' để lưu thay đổi, nhưng tôi không thể truy cập dữ liệu trong các hộp văn bản. Nó nói {"Input string was not in a correct format."}
."Chuỗi đầu vào không đúng định dạng."
Mã của tôi có dạng nút frmFormWizard
's 'chỉnh sửa' được đưa ra dưới đây:
frmFormWizard.cs Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.Sql;
using System.Data.SqlClient;
namespace SurveyBuilder
{
public partial class frmFormWizard : Form
{
int intPanelNumber = 1;
Boolean blnCancel = false;
//int intFlag = 1;
public frmFormWizard()
{
InitializeComponent();
}
.......................
.......................
.......................
.......................
private void btnEditTwoOrMoreOptions_Click(object sender, EventArgs e)
{
int QuestionID;
string sql;
QuestionID = Convert.ToInt32(lvTwoOrMoreOptions.SelectedItems[0].Text.ToString());
{
SqlConnection cn = new SqlConnection();
SqlCommand rs = new SqlCommand();
SqlDataReader sdr = null;
clsConnection clsCon = new clsConnection();
clsCon.fnc_ConnectToDB(ref cn);
sql = "";
sql += "SELECT * FROM SurveyQuestionLog WHERE SurveyQuestionLog.QuestionLogID = "+ QuestionID +"";
//sql += "SELECT * FROM SurveyQuestionLog";
rs.Connection = cn;
rs.CommandText = sql;
sdr = rs.ExecuteReader();
while (sdr.Read())
{
txtTwoOrMoreQuestions.Text = (string)sdr["Question"];
txtOption1.Text = (string)sdr["Choice1"];
......................................
......................................
......................................
}
sdr.Close();
rs = null;
cn.Close();
}
}
Bất cứ khi nào tôi cố gắng để biên dịch mã nó nói "{"Input string was not in a correct format."}"
và điều này lỗi được hiển thị trên dòng sau:
QuestionID = Convert.ToInt32(lvTwoOrMoreOptions.SelectedItems[0].Text.ToString());
Vui lòng cho tôi biết tôi đang làm gì sai.
KHÔNG SỬ DỤNG nối chuỗi để tạo ra câu lệnh SQL của bạn sử dụng các thông số, nếu không bạn để nó mở cửa cho SQL injection. – Lloyd
Giá trị thời gian chạy của lvTwoOrMoreOptions.SelectedItems [0] .Text.ToString() là gì? Ngoài ra, không nên "Văn bản" đã là một chuỗi, làm cho .ToString() dư thừa? – ZombieSheep
Điều gì @Lloyd nói là đúng: http://xkcd.com/327/ – Nolonar