如何把数组的值插入到数据库 c#
如果我的数组中的值是zhangsan男怎么插入到数据库阿???字段namesexsqlserversql该怎么写??...
如果我的数组中的值是
zhangsan 男
怎么插入到数据库阿???
字段
name sex
sqlserver
sql该怎么写?? 展开
zhangsan 男
怎么插入到数据库阿???
字段
name sex
sqlserver
sql该怎么写?? 展开
3个回答
展开全部
因为楼主没有说数据库的名字,还有表名所有,我写成了方法的入口参数了。我觉得楼主应该会取数组的值的哦。
环境: .NET FRAMEWORK 2.0
需要引入的命名空间 System.Data.SqlClient
/// <summary>
/// 插入数据。
/// </summary>
/// <param name="database">数据库名</param>
/// <param name="userId">登录数据库的用户名</param>
/// <param name="password">登录密码</param>
/// <param name="srcTable">数据表名</param>
/// <param name="name">表字段 name</param>
/// <param name="sex">表字段 sex</param>
/// <returns></returns>
public int InsertData
( string database, string userId, string password, string srcTable, string name, string sex )
{
int affected = -1; // 用于记录受影响的行数。
// 构造连接字符串
string conStr = String.Format( @"server=localhost;database={0};uid={1};password={2};", database, userId, password );
// 构造 T-SQL 语句
string sql = String.Format( @"Insert INTO [{0}]( [name], [sex] ) VALUES( @name, @sex )", srcTable );
using( SqlConnection con = new SqlConnection( conStr ) )
{
SqlCommand cmd = new SqlCommand( sql );
// 设置参数的值
cmd.Parameters.AddWithValue( "@name", name );
cmd.Parameters.AddWithValue( "@sex", sex );
try
{
// 执行操作,并记录受影响的行数。
affected = cmd.ExecuteNonQuery();
}
catch( SqlException sqlEx )
{
throw new Exception( "数据库异常", sqlEx );
}
catch
{
throw new Exception( "未知错误" );
}
finally
{
cmd.Cancel();
cmd.Dispose();
}
}
return affected;
}
环境: .NET FRAMEWORK 2.0
需要引入的命名空间 System.Data.SqlClient
/// <summary>
/// 插入数据。
/// </summary>
/// <param name="database">数据库名</param>
/// <param name="userId">登录数据库的用户名</param>
/// <param name="password">登录密码</param>
/// <param name="srcTable">数据表名</param>
/// <param name="name">表字段 name</param>
/// <param name="sex">表字段 sex</param>
/// <returns></returns>
public int InsertData
( string database, string userId, string password, string srcTable, string name, string sex )
{
int affected = -1; // 用于记录受影响的行数。
// 构造连接字符串
string conStr = String.Format( @"server=localhost;database={0};uid={1};password={2};", database, userId, password );
// 构造 T-SQL 语句
string sql = String.Format( @"Insert INTO [{0}]( [name], [sex] ) VALUES( @name, @sex )", srcTable );
using( SqlConnection con = new SqlConnection( conStr ) )
{
SqlCommand cmd = new SqlCommand( sql );
// 设置参数的值
cmd.Parameters.AddWithValue( "@name", name );
cmd.Parameters.AddWithValue( "@sex", sex );
try
{
// 执行操作,并记录受影响的行数。
affected = cmd.ExecuteNonQuery();
}
catch( SqlException sqlEx )
{
throw new Exception( "数据库异常", sqlEx );
}
catch
{
throw new Exception( "未知错误" );
}
finally
{
cmd.Cancel();
cmd.Dispose();
}
}
return affected;
}
展开全部
1.设置一个数据库的连接串,
string connectStr = "User Id=scott;Password=tiger;Data Source=";
OracleConnection conn = new OracleConnection(connectStr);
OracleCommand command = new OracleCommand();
command.Connection = conn;
conn.Open();
2.通过循环写入大量的数据
for (int i = 0; i < recc; i++)
{
string sql = "insert into dept values(" + i.ToString() + "," + i.ToString() + "," + i.ToString() + ")";
command.CommandText = sql;
command.ExecuteNonQuery();
}
//设置一个数据库的连接串
string connectStr = "User Id=scott;Password=tiger;Data Source=";
OracleConnection conn = new OracleConnection(connectStr);
OracleCommand command = new OracleCommand();
command.Connection = conn;
//到此为止,还都是我们熟悉的代码,下面就要开始喽
//这个参数需要指定每次批插入的记录数
command.ArrayBindCount = recc;
//在这个命令行中,用到了参数,参数我们很熟悉,但是这个参数在传值的时候
//用到的是数组,而不是单个的值,这就是它独特的地方
command.CommandText = "insert into dept values(:deptno, :deptname, :loc)";
conn.Open();
//下面定义几个数组,分别表示三个字段,数组的长度由参数直接给出
int[] deptNo = new int[recc];
string[] dname = new string[recc];
string[] loc = new string[recc];
// 为了传递参数,不可避免的要使用参数,下面会连续定义三个
// 从名称可以直接看出每个参数的含义,不在每个解释了
OracleParameter deptNoParam = new OracleParameter("deptno", OracleDbType.Int32);
deptNoParam.Direction = ParameterDirection.Input;
deptNoParam.Value = deptNo;
command.Parameters.Add(deptNoParam);
OracleParameter deptNameParam = new OracleParameter("deptname", OracleDbType.Varchar2);
deptNameParam.Direction = ParameterDirection.Input;
deptNameParam.Value = dname; command.Parameters.Add(deptNameParam);
OracleParameter deptLocParam = new OracleParameter("loc", OracleDbType.Varchar2);
deptLocParam.Direction = ParameterDirection.Input;
deptLocParam.Value = loc;
command.Parameters.Add(deptLocParam);
//在下面的循环中,先把数组定义好,而不是像上面那样直接生成SQL
for (int i = 0; i < recc; i++)
{
deptNo[i] = i;
dname[i] = i.ToString();
loc[i] = i.ToString();
}
//这个调用将把参数数组传进SQL,同时写入数据库
command.ExecuteNonQuery();
string connectStr = "User Id=scott;Password=tiger;Data Source=";
OracleConnection conn = new OracleConnection(connectStr);
OracleCommand command = new OracleCommand();
command.Connection = conn;
conn.Open();
2.通过循环写入大量的数据
for (int i = 0; i < recc; i++)
{
string sql = "insert into dept values(" + i.ToString() + "," + i.ToString() + "," + i.ToString() + ")";
command.CommandText = sql;
command.ExecuteNonQuery();
}
//设置一个数据库的连接串
string connectStr = "User Id=scott;Password=tiger;Data Source=";
OracleConnection conn = new OracleConnection(connectStr);
OracleCommand command = new OracleCommand();
command.Connection = conn;
//到此为止,还都是我们熟悉的代码,下面就要开始喽
//这个参数需要指定每次批插入的记录数
command.ArrayBindCount = recc;
//在这个命令行中,用到了参数,参数我们很熟悉,但是这个参数在传值的时候
//用到的是数组,而不是单个的值,这就是它独特的地方
command.CommandText = "insert into dept values(:deptno, :deptname, :loc)";
conn.Open();
//下面定义几个数组,分别表示三个字段,数组的长度由参数直接给出
int[] deptNo = new int[recc];
string[] dname = new string[recc];
string[] loc = new string[recc];
// 为了传递参数,不可避免的要使用参数,下面会连续定义三个
// 从名称可以直接看出每个参数的含义,不在每个解释了
OracleParameter deptNoParam = new OracleParameter("deptno", OracleDbType.Int32);
deptNoParam.Direction = ParameterDirection.Input;
deptNoParam.Value = deptNo;
command.Parameters.Add(deptNoParam);
OracleParameter deptNameParam = new OracleParameter("deptname", OracleDbType.Varchar2);
deptNameParam.Direction = ParameterDirection.Input;
deptNameParam.Value = dname; command.Parameters.Add(deptNameParam);
OracleParameter deptLocParam = new OracleParameter("loc", OracleDbType.Varchar2);
deptLocParam.Direction = ParameterDirection.Input;
deptLocParam.Value = loc;
command.Parameters.Add(deptLocParam);
//在下面的循环中,先把数组定义好,而不是像上面那样直接生成SQL
for (int i = 0; i < recc; i++)
{
deptNo[i] = i;
dname[i] = i.ToString();
loc[i] = i.ToString();
}
//这个调用将把参数数组传进SQL,同时写入数据库
command.ExecuteNonQuery();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string[] array = new string[]{"zhangsan","男"}
string sql = "Insert into 表名(name,sex) values("+array[0]+","+array[1]+")";
是这意思吧
string sql = "Insert into 表名(name,sex) values("+array[0]+","+array[1]+")";
是这意思吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询