0

スキルを追加するための 3 つのテキスト ボックスがあり、「SkillName」という 1 つの列に入ります。ただし、このエラーが発生します。

'System.Web.UI.Control' does not contain a definition for 'Text' and no extension method 'Text' accepting a first argument of type 'System.Web.UI.Control' could be found (are you missing a using directive or an assembly reference?)

しかし、System.Web.UI.WebControls; を使用してアセンブリを使用しました。

これは、テキストボックスを追加するための私のコードです-

 public void InsertSkillInfo()
        {


            String str = @"Data Source=USER-PC\SQLEXPRESS;Initial Catalog=DBNAME;Integrated Security=True";
            SqlConnection conn = new SqlConnection(str);

            try
            {

                for (int i = 1; i <= 3; i++)
                {
                    conn.Open();
                    **string skill = (Page.FindControl("TextBox" + i.ToString())).Text;**
                    const string sqlStatement = "INSERT INTO Cert (SkillName) VALUES (@SkillName)";
                    SqlCommand cmd = new SqlCommand(sqlStatement, conn);
                    cmd.CommandType = CommandType.Text;
                    cmd.Parameters["@SkillName"].Value = skill;
                    cmd.ExecuteNonQuery();
                }
            }

            catch (System.Data.SqlClient.SqlException ex)
            {
                string msg = "Insert Error:";
                msg += ex.Message;
                throw new Exception(msg);
            }

            finally
            {
                conn.Close();
            }

         } 
4

3 に答える 3

2

Page.FindControlを返しControlますが、テキストボックスが必要です。検出されたコントロールが常にテキストボックスであることが確実な場合は、それをテキストボックスにキャストします。

また:

string skill = (TextBox)((Page.FindControl("TextBox" + i.ToString()))).Text;

また

var skill = "";
var control = Page.FindControl("TextBox" + i.ToString()) as TextBox;
if(control != null {
    skill = control.Text;
}
于 2012-07-26T09:31:09.380 に答える
0

コントロールをTexBoxにキャストする必要があるので、これである必要があります

string skill = ((TextBox) Page.FindControl("TextBox" + i.ToString())).Text;
于 2012-07-26T09:30:14.410 に答える
0

このように簡単に試すことができます

string skill = ((TextBox)(Page.FindControl("TextBox" + i.ToString()))).Text;
于 2012-07-26T09:30:25.550 に答える