public void insertdata(string tab, string l1, string l1b, string l2, string l2b)
{
Open();//这打开数据库
SqlCommand com = new SqlCommand("Insert into [" + tab + "](" + l1 + "," + l2 + ") values('" + @l1b + "','" + @l2b + "')", con);
SqlCommand com = new SqlCommand(sql , con);
SqlParameter[] prams ={
new SqlParameter ("@l1b", SqlDbType.Char,30),
new SqlParameter ("@l2b", SqlDbType.Text )
}; prams[0].Value = l1b;
prams[1].Value = l2b;
foreach (SqlParameter par in prams)
{
com.Parameters.Add(par);
}
com.ExecuteNonQuery();
Close();
Dispose();
}
这是现在用的方法,但这样太死板.如果要插入更多的参数就又要重写,我想要一个灵活的方法请高手帮个忙.
{
Open();//这打开数据库
SqlCommand com = new SqlCommand("Insert into [" + tab + "](" + l1 + "," + l2 + ") values('" + @l1b + "','" + @l2b + "')", con);
SqlCommand com = new SqlCommand(sql , con);
SqlParameter[] prams ={
new SqlParameter ("@l1b", SqlDbType.Char,30),
new SqlParameter ("@l2b", SqlDbType.Text )
}; prams[0].Value = l1b;
prams[1].Value = l2b;
foreach (SqlParameter par in prams)
{
com.Parameters.Add(par);
}
com.ExecuteNonQuery();
Close();
Dispose();
}
这是现在用的方法,但这样太死板.如果要插入更多的参数就又要重写,我想要一个灵活的方法请高手帮个忙.
解决方案 »
- 如何在ASP.NET中处理COM组件触发的事件
- 在线等,立马给分!
- 开源
- 如何把webcontrol生成的html代码输出给一个string?
- ----------------以子窗体作为登陆窗体,通过输入正确密码,进入到父窗体-该怎样做呢?--------------------
- 建表
- 求救:在windows2003下该如何配置IIS服务器?
- 怎样调用编译成dll的用户控件啊?
- 有没有完整可用的VB+asp.net+access用datagrid分页的例子,谢谢!
- 如何用.NET实现聊天室功能???动态(激发)刷新页面??大家讨论一下。--谢谢--分数多多
- 请高手指教:产生N个随机图片路径并赋值给N个Image的ImageUrl
- 我要使用自动序号,出现错误.
{
...底下自己写吧:)
}
/// 执行Sql语句并返回一个bool类型(true:成功执行/false:失败)
/// </summary>
/// <param name="Sql">要执行的Sql语句</param>
/// <param name="Prams">SqlParameter数组</param>
/// <returns></returns>
public bool ExecuteNonQuery(string SQL, SqlParameter[] Prams)
{
bool Flag = false;
try
{
this.OpenCon();
SqlCommand cmd = new SqlCommand(SQL, cnn);
cmd.Parameters.Clear(); //清除SqlParameterCollection项 if (Prams != null)
{
foreach (SqlParameter Sqlpara in Prams)
{
cmd.Parameters.Add(Sqlpara);
}
}
int iRow = cmd.ExecuteNonQuery(); if (iRow > 0)
Flag = true;
}
catch (SqlException ex)
{
throw new Exception("数据库执行出错——" + ex.Message.ToString());
}
finally
{
this.CloseCon();
}
return Flag;
}
{
if (!ConnectDataBase())
{
throw new ApplicationException("连接数据库不成功。");
}
bool T = true;
string SQL = "insert into " + TableName + " (";
for (int i = 0; i < ValueNames.Length; i++)
{
if (i + 1 < ValueNames.Length)
SQL += ValueNames[i].ToString() + ",";
else
SQL += ValueNames[i].ToString() + "";
}
SQL += ") VALUES ";
for (int i = 0; i < Values.Length; i++)
{
if (i == 0)
SQL += "(" + Values[i];
else
SQL += "," + Values[i];
}
SQL += ")";
this._command.CommandText = SQL;
try
{
this._command.ExecuteNonQuery();
}
catch (SqlException e)
{
if (_isTransaction)
this._sqlTransaction.Rollback();
throw (e);
}
return T;
}
你直接写一个执行SQL语句的函数那样就不用管你的字段多少个了。
传进去SQL语句直接执行就可以了。/// <summary>
/// 执行数据库的插、删、改等语句
/// </summary>
/// <param name="StrSQL">待执行的SQL语句</param>
/// <returns>返回值为布尔形 注:true为成功 false为失败</returns>
public static bool ExecuteSQL(string StrCmdText)
{
OpenConnection(); //打开数据连接函数,自己再写一下
SqlTransaction ObjTransaction = null;
SqlCommand ObjCommand = new SqlCommand(StrCmdText, ObjConnection); try
{
ObjTransaction = ObjConnection.BeginTransaction();
ObjCommand.Transaction = ObjTransaction;
ObjCommand.ExecuteNonQuery();
ObjTransaction.Commit();
}
catch (SqlException Ex)
{
ObjTransaction.Rollback();
StrErrMessage = "执行数据库失败:" + Ex.Message;
return false;
}
finally
{
CloseConnection(); //关闭函数,自己再写一下
}
return true;
}
你可以提供几个重载.有传SqlCommand,有传sql语句的.等等..
如果传SQL语句的话,SqlParameter不好弄
或者是有办法,我不知道-_-!