我在尝试执行gridview行创建的事件
时出错<asp:GridView ID="grdDetailedMes" runat="server" Width="800px"
ForeColor="black" GridLines="Horizontal" CellPadding="6" BackColor="white"
BorderColor="Black" BorderStyle="Solid" ShowHeader="False" OnRowCreated="grdDetailedMes_rowcreated">
</asp:GridView>
和.cs文件
SqlConnection cnn = new SqlConnection("Data Source=ITS-BA-DC02\\MSSQL2008_SAND;Initial Catalog=TestDB_Chaitanya;User Id=sa;Password=01Explore");
try
{
cnn.Open();
SqlDataAdapter da = new SqlDataAdapter("select MesDetails from InboxMesgDetails where InboxMesId='{0}'", cnn);
DataSet ds = new DataSet();
da.Fill(ds);
grdDetailedMes.DataSource = ds;
grdDetailedMes.DataBind();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
cnn.Close();
}
protected void grdDetailedMes_rowcreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
GridView headergrid = (GridView)sender;
GridViewRow Headergridrow = new GridViewRow(0, -1, DataControlRowType.Header, DataControlRowState.Insert);
TableCell Headercell = new TableCell();
Headercell.Text = "Company";
Headercell.ColumnSpan = '2';
Headergridrow.Cells.Add(Headercell);
}
}
答案 0 :(得分:0)
您的错误在这里:
“从InboxMesgDetails中选择MesDetails,其中InboxMesId ='{0}'”
你打算在这上做一个string.format吗?您目前没有用任何东西替换该占位符。现在它正在尝试使用文字{0}。此外,不应该使用单引号,因为看起来你的InboxMesId是一个int
答案 1 :(得分:0)
您的查询没有为{0}传递参数: -
SqlDataAdapter da = new SqlDataAdapter("select MesDetails from InboxMesgDetails where InboxMesId='{0}'", cnn);
代替{0},你应该使用'@Param',并且应该使用SqlCommand.Parameters Property传递有效参数
你可以这样做 -
using (SqlConnection connection = new SqlConnection(connectionString))
{
String commandText="select MesDetails from InboxMesgDetails where InboxMesId=@ID";
SqlCommand command = new SqlCommand(commandText, connection);
command.Parameters.Add("@ID", SqlDbType.Int);
command.Parameters["@ID"].Value = InboxMesId;
command.Parameters.Add("@ID", SqlDbType.Int);
try
{
connection.Open();
int rowsAffected = command.ExecuteNonQuery();
Console.WriteLine("RowsAffected: {0}", rowsAffected);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
答案 2 :(得分:0)
您是否正在寻找替换{0}中的内容? 如果是,那么您的代码不会处理此问题。
SQL无法将{}转换为int。
答案 3 :(得分:0)
这应该对您有所帮助SqlDataAdapter