我正在研究一個項目,其中我有一個表單,可以通過它編輯列表視圖中的問題。每當我從列表視圖中選擇一行並單擊「修改」按鈕,列表視圖上方的文本框就會加載問題及其選項。 這意味着當我在列表視圖中選擇一行並單擊'修改'按鈕時,問題將自動加載到文本框中。我在那裏編輯問題,然後點擊'保存'保存更改,但我無法訪問文本框中的數據。它說{"Input string was not in a correct format."}
。「輸入字符串格式不正確。」
我的形式frmFormWizard
的‘編輯’按鈕的代碼下面給出:
frmFormWizard.cs代碼:
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();
}
}
每當我試圖編譯代碼,它說"{"Input string was not in a correct format."}"
這錯誤顯示在以下行上:
QuestionID = Convert.ToInt32(lvTwoOrMoreOptions.SelectedItems[0].Text.ToString());
請讓我知道我做錯了什麼。
不要使用字符串連接生成SQL語句中使用參數,否則你把它開到SQL注入。 – Lloyd
什麼是lvTwoOrMoreOptions.SelectedItems [0] .Text.ToString()的運行時間值?另外,不應該「文本」已經是一個字符串,使.ToString()多餘? – ZombieSheep
@Lloyd說的是對的:http://xkcd.com/327/ – Nolonar