以下のエラーが発生したときに、リストボックス項目と各リストボックス項目のテキストボックス値をデータベースに挿入しようとしています。
リストボックスの項目のみを挿入しようとすると成功しますが、テキストボックスの値を挿入しようとすると、このエラーが発生します。私が間違っていることを教えてください。
エラー メッセージ: オブジェクトは IConvertible を実装する必要があります。 説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。 例外の詳細: System.InvalidCastException: オブジェクトは IConvertible を実装する必要があります。 ソース エラー: 60 行目: 61 行目: 62 行目: cmd.ExecuteNonQuery(); 63 行目: 64 行目:
c#コード
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Specialized;
using System.Text;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;
using System.Web.UI.HtmlControls;
public partial class test1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
private string GetConnectionString()
{
return System.Configuration.ConfigurationManager.ConnectionStrings["RM_Jan2011ConnectionString"].ConnectionString;
}
private void InsertRecords(StringCollection sc)
{
SqlConnection conn = new SqlConnection(GetConnectionString());
StringBuilder sb = new StringBuilder(string.Empty);
foreach (string item in sc)
{
const string sqlStatement = "INSERT INTO FileID(File_Code, Dept_Code) VALUES(@File_Code, @Dept_Code)";
sb.AppendFormat("{0}('{1}'); ", sqlStatement, item);
}
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(sb.ToString(), conn);
cmd.Parameters.Add("@File_Code", SqlDbType.VarChar);
cmd.Parameters["@File_Code"].Value = ListBox2.Items;
cmd.Parameters.Add("@Dept_Code", SqlDbType.VarChar);
cmd.Parameters["@Dept_Code"].Value = DropDownList1.Text;
cmd.ExecuteNonQuery();
Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Script", "alert ('Records Successfuly Saved!');", true);
}
catch (System.Data.SqlClient.SqlException ex)
{
string msg = "Insert Error:";
msg += ex.Message;
throw new Exception(msg);
}
finally
{
conn.Close();
}
}
protected void Button4_Click(object sender, EventArgs e)
{
int myint = Convert.ToInt32(TextBox1.Text) + 1;
for (int i = 1; i < myint; i++)
{
ListBox2.Items.Add(DropDownList1.SelectedItem.ToString() + i.ToString());
}
}
protected void Button1_Click(object sender, EventArgs e)
{
StringCollection sc = new StringCollection();
foreach (ListItem item in ListBox2.Items)
{
{
sc.Add(item.Text);
sc.Add(DropDownList1.Text);
}
}
InsertRecords(sc);
}
リストボックスのすべての値をデータベースに追加したい。
第二に、私が使用しようとしても。
選択した項目
次に、次のエラーが表示されます。
挿入エラー: 'CPD1' 付近の構文が正しくありません。 「CPD」付近の構文が正しくありません。 「CPD2」付近の構文が正しくありません。 「CPD」付近の構文が正しくありません。 「CPD3」付近の構文が正しくありません。 「CPD」付近の構文が正しくありません。
私が間違っているところはありますか?