Asp.net 将多个文本框值插入sql数据库
我有3个文本框来添加技能,它们放在一个名为“SkillName”的列中。 然而,我得到了这个错误Asp.net 将多个文本框值插入sql数据库,asp.net,Asp.net,我有3个文本框来添加技能,它们放在一个名为“SkillName”的列中。 然而,我得到了这个错误 '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 direct
'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();
}
}
public void InsertSkillInfo()
{
字符串str=@“数据源=USER-PC\SQLEXPRESS;初始目录=DBNAME;集成安全性=True”;
SqlConnection conn=新的SqlConnection(str);
尝试
{
对于(inti=1;i您需要将控件强制转换为TexBox,因此应该是这样
string skill = ((TextBox) Page.FindControl("TextBox" + i.ToString())).Text;
你可以这样简单地试试
string skill = ((TextBox)(Page.FindControl("TextBox" + i.ToString()))).Text;
页面。FindControl
将返回一个控件,但您需要一个文本框。如果您确定它找到的控件始终是一个文本框,请将其强制转换为文本框
要么:
string skill = (TextBox)((Page.FindControl("TextBox" + i.ToString()))).Text;
或
谢谢..但现在在参数附近显示错误-此SqlParameterCollection不包含参数名为“@SkillName”的SqlParameter。请尝试使用以下内容添加参数:cmd.Parameters.AddWithValue(@SkillName”,skill)
谢谢..但是现在它在参数附近显示错误-参数名为“@SkillName”的SqlParameterCollections不包含在这个SqlParameterCollections中,它非常容易受到SQL注入攻击。如果有人输入了一个名为”的技能,会发生什么情况呢)删除表证书转到--
?
var skill = "";
var control = Page.FindControl("TextBox" + i.ToString()) as TextBox;
if(control != null {
skill = control.Text;
}