无法将类型“string”隐式转换为“System.Web.UI.WebControls.TextBox”

池草不成梦 2010-04-12 11:32:16

public partial class Admin_AddNews : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

if (!IsPostBack)
{
ListBind();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
DateTime addtime = DateTime.Now;
SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["constr"]);
string insr = "insert into News (NewsTitle,NewsClassID,NewsContent,NewsAddtime,NewsClick,NewsAuthor) values('" + Title.Text + "','" + DropDownList1.SelectedValue + "','" + NewsContent.Text.Trim() +"','" + addtime + "',0,'" + Author.Text + "')";
conn.Open();
SqlCommand cmd = new SqlCommand(insr, conn);
cmd.ExecuteNonQuery();
Label1.Text = "添加成功!";
Label1.Visible = true;
conn.Close();

}

public void ListBind()
{
SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["constr"]);
string sql = "select * from NewsClass order by NewsID desc";
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds, "NewsClass");
DropDownList1.DataSource = ds.Tables["NewsClass"].DefaultView;
DropDownList1.DataTextField = "NewsClassName";
DropDownList1.DataValueField = "NewsID";
DropDownList1.DataBind();
conn.Close();

}
protected void Button2_Click(object sender, EventArgs e)
{
NewsContent.Text = "";
Title.Text = "";
}
}





前台页面:
<%@ Page Language="C#" MasterPageFile="~/Admin/Admin.master" AutoEventWireup="true" //错误行..无语。
CodeFile="AddNews.aspx.cs" Inherits="Admin_AddNews" Title="Untitled Page" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<div style="text-align: center; font-size: 14px;">
<table style="height: 366px; width: 90%;">
<tr>
<td style="width: 72px; text-align: center;">
标题</td>
<td style="width: 100px; text-align: left;">
<asp:TextBox ID="Title" runat="server" Width="493px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="Title"
Display="Dynamic" ErrorMessage="不能为空"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td style="width: 72px; text-align: center;">
类别</td>
<td style="width: 100px; text-align: left">
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList></td>
</tr>
<tr>
<td style="width: 72px; text-align: center;">
作者</td>
<td style="width: 100px; text-align: left">
<asp:TextBox ID="Author" runat="server" Width="100px" MaxLength="20"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="Author"
Display="Dynamic" ErrorMessage="不能为空"></asp:RequiredFieldValidator></td>
</tr>
<tr>

<td style="width: 72px" valign="top">
内容</td>
<td style="width: 100px; text-align: left">
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="NewsContent"
Display="Dynamic" ErrorMessage="还是说点什么吧"></asp:RequiredFieldValidator>
<asp:TextBox ID="NewsContent" runat="server" Height="500px" TextMode="MultiLine"
Width="500px"></asp:TextBox>
</td>
</tr>
<%-- <tr>
<td align="center">
留言表情</td>
<td>
<asp:RadioButtonList ID="Face" runat="server" Width="500px" RepeatColumns="6">
<asp:ListItem Value="1" Selected="True"><img src=images/1.gif></asp:ListItem>
<asp:ListItem Value="2"><img src=Images/2.gif></asp:ListItem>
<asp:ListItem Value="3"><img src=Images/3.gif></asp:ListItem>
<asp:ListItem Value="4"><img src=Images/4.gif></asp:ListItem>
<asp:ListItem Value="5"><img src=Images/5.gif></asp:ListItem>
<asp:ListItem Value="6"><img src=Images/6.gif></asp:ListItem>
<asp:ListItem Value="7"><img src=Images/7.gif></asp:ListItem>
<asp:ListItem Value="8"><img src=Images/8.gif></asp:ListItem>
<asp:ListItem Value="9"><img src=Images/9.gif></asp:ListItem>
<asp:ListItem Value="10"><img src=Images/10.gif></asp:ListItem>
<asp:ListItem Value="11"><img src=Images/11.gif></asp:ListItem>
<asp:ListItem Value="12"><img src=Images/12.gif></asp:ListItem>
</asp:RadioButtonList></td>
</tr>--%>
<tr>
<td style="width: 72px">
</td>
<td style="width: 100px; text-align: left">
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="发表" />
  
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="清空" /></td>
</tr>
<tr>
<td colspan="2" style="text-align: center" rowspan="3">
<asp:Label ID="Label1" runat="server" Width="303px"></asp:Label><a href="Admin_Index.aspx">查看</a></td>
</tr>
<tr>
</tr>
<tr>
</tr>
</table>
<br />
</div>
</asp:Content>

错误 4 无法将类型“string”隐式转换为“System.Web.UI.WebControls.TextBox” E:\Student\Admin\AddNews.aspx 1


小弟刚学C#几天,一早上就被这个留言板搞疯了.. 高手们救命。。
...全文
2019 30 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
song237033901 2012-10-18
  • 打赏
  • 举报
回复
26L正解
cfrjFCB 2011-11-09
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 jinhao2003 的回复:]
<asp:TextBox ID="Title" runat="server" Width="493px"></asp:TextBox>

原因是你的TextBox的ID取得太特殊了,和Page.Title重复了,可以改为txtTitle或者title,就没有错误了。更推荐txtTitle,注意编程过程中良好的命名规范,就可以避免此为问题的发生了。

google出来的。
[/Quote]

这个才是正解,哈哈
cfrjFCB 2011-11-09
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 zs82891879 的回复:]
TextBox.Text是String类型,赋值时最好在后面加.ToString()
[/Quote]

正解,我也遇到过!
架构师Wu老七 2011-05-24
  • 打赏
  • 举报
回复
26楼的jinhao2003 正解! 牛13!
jinhao2003 2011-04-11
  • 打赏
  • 举报
回复
<asp:TextBox ID="Title" runat="server" Width="493px"></asp:TextBox>

原因是你的TextBox的ID取得太特殊了,和Page.Title重复了,可以改为txtTitle或者title,就没有错误了。更推荐txtTitle,注意编程过程中良好的命名规范,就可以避免此为问题的发生了。

google出来的。
zs82891879 2010-04-13
  • 打赏
  • 举报
回复
TextBox.Text是String类型,赋值时最好在后面加.ToString()
wjkhechen 2010-04-12
  • 打赏
  • 举报
回复
TextBox.Text=xxxx
Peter200694013 2010-04-12
  • 打赏
  • 举报
回复
你贴的代码貌似没有错误。
应该是某个TextBox控件设置显示内容时错了
eg: TextBox1.Text = "test";
你写成了
TextBox = "test";
roger0710 2010-04-12
  • 打赏
  • 举报
回复
应该有个.text 应该是你直接把string赋给了控件
gramaster 2010-04-12
  • 打赏
  • 举报
回复
看看你的母版页有错误吗?MasterPageFile="~/Admin/Admin.master"
jietuan 2010-04-12
  • 打赏
  • 举报
回复
“string” 应该是TextBox的一个ID,请确定这个TextBox的父控件是什么,只能在父控件里面find it。
lee_b 2010-04-12
  • 打赏
  • 举报
回复
LZ你的后台代码全在这里吗?没看到你把string给TextBox的代码啊。。
liq2025 2010-04-12
  • 打赏
  • 举报
回复
你调试一下,看哪一行出现出错。
herty 2010-04-12
  • 打赏
  • 举报
回复
TextBox.Text = "";
群龙 2010-04-12
  • 打赏
  • 举报
回复
System.Web.UI.WebControls.TextBox(.Text)=string
itliyi 2010-04-12
  • 打赏
  • 举报
回复
无法将类型“string”隐式转换为“System.Web.UI.WebControls.TextBox”
ztianfu 2010-04-12
  • 打赏
  • 举报
回复
没看出毛病在哪里
huhaiwei2006 2010-04-12
  • 打赏
  • 举报
回复
要引用控件类 获取控件对象
dumianqian 2010-04-12
  • 打赏
  • 举报
回复
呵~
无法将类型“string”隐式转换为“System.Web.UI.WebControls.TextBox”

TextBox.Text="string"
皇城龙三 2010-04-12
  • 打赏
  • 举报
回复
string insr = "insert into News (NewsTitle,NewsClassID,NewsContent,NewsAddtime,NewsClick,NewsAuthor) values('" + Title.Text + "','" + DropDownList1.SelectedValue + "','" + NewsContent.Text.Trim() +"','" + addtime + "',0,'" + Author.Text + "')";

从程序上看,就这里是可能出现问题的地方,因为这里转换的都是字符串,所以为了保险,建议将后面的取值都加上.tostring(),这样可以确保字符串的类型。

其他地方看了,没有什么问题,除非就是在其他页面出现的问题,建议看看调试的时候出现这种错误的页面一共有多少,如果就这一个页面的话,问题就可能出现在这里
加载更多回复(10)
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.OleDb; public partial class userShow : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { this.Label1.Text = System.DateTime.Now.ToString(); loadData(); } protected void Button2_Click(object sender, EventArgs e) { OleDbConnection conn; OleDbCommand cmd; string olecmd, oleString,value; value = this.TextBox1.Text; Session.Add("key", value); oleString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("news.mdb"); olecmd = "select * from userLoad where userName='"; olecmd += TextBox1 .Text.Trim(); olecmd += "'and userPassword='"; olecmd += TextBox2 .Text.Trim() + "'"; conn = new OleDbConnection();//实例化对象 conn.ConnectionString = oleString; cmd = new OleDbCommand(); cmd.Connection = conn; cmd.CommandText = olecmd; conn.Open(); OleDbDataReader dr = cmd.ExecuteReader(); if (this.TextBox1.Text.Trim() == "" || this.TextBox2.Text.Trim() == "") { Response.Redirect("usersub.aspx"); } if (dr.Read()) { Session["username"] = this.TextBox1.Text; Response.Redirect("todayNews.aspx"); } else { this.TextBox1 .Focus(); this.TextBox1 .Text = ""; this.TextBox2 .Text = ""; } conn.Close(); dr.Close(); } protected void Button3_Click(object sender, EventArgs e) { this.TextBox1.Focus(); this.TextBox1.Text = ""; this.TextBox2.Text = ""; } DataSet GetDataSet() { OleDbConnection conn; OleDbCommand cmd; conn = new OleDbConnection(); conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("news.mdb"); conn.Open(); cmd = new OleDbCommand(); cmd.CommandText = "select * from newsData where newsclassid=0"; cmd.Connection = conn; OleDbDataAdapter oleDA = new OleDbDataAdapter(); oleDA.SelectCommand = cmd; DataSet ds = new DataSet(); oleDA.Fill(ds, "newsData"); conn.Close(); return ds; } void loadData() { DataSet ds = GetDataSet(); GridView1.DataSource = ds; GridView1.DataBind(); } protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { Response.Redirect("userLogin.aspx"); } protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; loadData(); } }
using System; using System.Data; using System.Data.SqlClient; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { LoginAcc.LoginCheck(); if (!Page.IsPostBack) { DataBind(); } } void DataBind() { //string str = "select NewsId,Title,AddTime,ViewCounter from ViewTable order by AddTime desc"; SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); conn.Open(); SqlCommand cmd = new SqlCommand("up_GetDetilNews", conn); cmd.CommandType = CommandType.StoredProcedure; DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(ds,"result"); GridView1.DataSource = ds.Tables["result"]; GridView1.DataBind(); } protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { //GridView1.PageIndex = e.NewPageIndex; GridView theGrid = sender as GridView; // refer to the GridView int newPageIndex = 0; if (-2 == e.NewPageIndex) { // when click the "GO" Button TextBox txtNewPageIndex = null; //GridViewRow pagerRow = theGrid.Controls[0].Controls[theGrid.Controls[0].Controls.Count - 1] as GridViewRow; // refer to PagerTemplate GridViewRow pagerRow = theGrid.BottomPagerRow; //GridView较DataGrid提供了更多的API,获取分页块可以使用BottomPagerRow 或者TopPagerRow,当然还增加了HeaderRow和FooterRow //updated at 2006年6月21日3:15:33 if (null != pagerRow) { txtNewPageIndex = pagerRow.FindControl("txtNewPageIndex") as TextBox; // refer to the TextBox with the NewPageIndex value } if (null != txtNewPageIndex) { newPageIndex = int.Parse(txtNewPageIndex.Text) - 1; // get the NewPageIndex } } else { // when click the first, last, previous and next Button newPageIndex = e.NewPageIndex; } // check to prevent form the NewPageIndex out of the range newPageIndex = newPageIndex < 0 ? 0 : newPageIndex; newPageIndex = newPageIndex >= theGrid.PageCount ? theGrid.PageCount - 1 : newPageIndex; // specify the NewPageIndex theGrid.PageIndex = newPageIndex; // rebind the control // in this case of retrieving the data using the xxxDataSoucr control, // just do nothing, because the asp.net engine binds the data automatically // 别忘了重新绑定 DataBind(); } protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { string strId = (GridView1.DataKeys[e.RowIndex].Value).ToString(); string delStr = "delete from ViewTable where NewsId=" + strId; DbUtil.DbHelper.ExecSqlNonQuerry(delStr); DataBind(); MyUtil.CsHelper.ExecJS("删除成功!", this); } }

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧