今天换一种方法来存入用户信息 利用存储过程来实现对数据库里的增加用户用的信息,自己在在写存储过程这方面还存在很大的漏洞,以后应该抓紧拾起来,
只做了一个简易的留言板,从网上Down到的CKEditor控件可以在文本框中实现简单的文字处理,依然用到前面建好的对数据库进行操作的类,下面附上这段代码:
protected void Page_Load(object sender, EventArgs e)
{
LoadTable();
}
private void LoadTable()
{
string sql = ConfigurationManager.ConnectionStrings["sqlcnn"].ConnectionString;
using (SqlConnection sqlcon = new SqlConnection(sql))
{
SqlCommand sqlcom = new SqlCommand();
sqlcom.CommandText = "select id,time,content from BBS";
sqlcom.Connection = sqlcon;
sqlcon.Open();
Table table = new Table();
TableRow row = new TableRow();
TableCell cell = new TableCell();
SqlDataReader read = sqlcom.ExecuteReader();
while (read.Read())
{
row = new TableRow();
cell = new TableCell();
cell.Text = "第" + read["id"].ToString() + "条" + "<br/>" + "留言时间:" + read["time"].ToString();
row.Cells.Add(cell);
table.Rows.Add(row);
row = new TableRow();
cell = new TableCell();
cell.Text = read["content"].ToString();
row.Cells.Add(cell);
table.Rows.Add(row);
row = new TableRow();
cell = new TableCell();
HyperLink btn = new HyperLink();
btn.Text = "删除";
btn.NavigateUrl = "delete.aspx?del=" + read["id"].ToString();
cell.Controls.Add(btn);
row.Cells.Add(cell);
table.Rows .Add(row);
}
this.tables.Controls.Add(table);
read.Close();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string str = "insert into BBS ([content]) values (@content)";
int i = SqlHelper.ExecuteNonQuery(str,new SqlParameter ("@content",CKEditorControl1 .Text));
if (i == 1)
{
this.Response.Write("留言成功!");
this.CKEditorControl1.Text = " ";
}
else
{ Response.Write("网络故障!"); }
LoadTable();
}
在留言中还可以实现删除功能,是利用另一个空白页面来实现的,
目前这个留言是比较简单的,没有用户的区别,只是简单的从数据库里调用数据,显示在页面上,日后来完善这个程序!
最后再附上用到的SqlHelper的类:
public class SqlHelper
{
public SqlHelper()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
public static readonly string str = ConfigurationManager.ConnectionStrings["sqlcnn"].ConnectionString;
下面这个方法,是用来获取结果集的第一行第一列的结果
public static object ExecuteScalar(string sqlText, params SqlParameter[] paramss)
{
using (SqlConnection sqlcon = new SqlConnection(str))
{
using (SqlCommand sqlcom = sqlcon.CreateCommand())
{
sqlcom.CommandText = sqlText;
fillParameter(paramss, sqlcom);
sqlcon.Open();
return sqlcom.ExecuteScalar();
}
}
}
//填充Command对象的参数列表
private static void fillParameter(SqlParameter[] paramss, SqlCommand sqlcom)
{
foreach (SqlParameter param in paramss)
{
sqlcom.Parameters.Add(param);
}
}
/// 获取检索结果集,返回DataTable
public static DataTable ExecuteTable(string sqlText, params SqlParameter[] paramss)
{
using (SqlConnection sqlcon = new SqlConnection(str))
{
using (SqlCommand sqlcom = sqlcon.CreateCommand())
{
sqlcom.CommandText = sqlText;
fillParameter(paramss, sqlcom);
sqlcon.Open();
using (SqlDataReader reader = sqlcom.ExecuteReader())
{
DataTable dt = new DataTable();
dt.Load(reader);
return dt;
}
}
}
}
/// 执行对数据库的增、删、改操作,并返回数据库中受影响的行数
public static int ExecuteNonQuery(string sqlText, params SqlParameter[] paramss)
{
using (SqlConnection sqlcon = new SqlConnection(str))
{
using (SqlCommand sqlcom = sqlcon.CreateCommand())
{
sqlcom.CommandText = sqlText;
fillParameter(paramss, sqlcom);
sqlcon.Open();
return sqlcom.ExecuteNonQuery();
}
}
}
}
在这个类里可以实现对数据库的大部分操作了!对于要打很多重复的代码的工程来说,这是一个很好的工具。