asp.net c# 一维数组每隔三个元素取值,循环怎么写
例子:string[]strList={2014-1-1,1男,1女,2014-1-2,2男,2女,2014-1-3,3男,3女}";//一维数组是有规律的排列,都是按“...
例子:
string[] strList={2014-1-1,1男,1女,2014-1-2,2男,2女,2014-1-3,3男,3女}" ;//一维数组是有规律的排列,都是按“日期,XX,YY,日期,XX,YY .....”这样的排列,元素的个数是3的倍数
现在是想把这数组每隔三个分别取值出来插入到数据库,比如先取“2014-1-1,1男,1女”把这三个值取出来之后赋给sql语句,再取“2014-1-2,2男,2女”的三个值赋给sql语句,直到取完为止。我知道是要写循环,脑子笨想不出来,很久没接触了。
sql语句参考 "insert into [table] ([Date],[Men],[Women]) values(@Date,@Men,@Women)";最后数据表里的值是这样的
2014-1-1 1男 1女
2014-1-2 2男 2女
2014-1-3 3男 3女
...... 展开
string[] strList={2014-1-1,1男,1女,2014-1-2,2男,2女,2014-1-3,3男,3女}" ;//一维数组是有规律的排列,都是按“日期,XX,YY,日期,XX,YY .....”这样的排列,元素的个数是3的倍数
现在是想把这数组每隔三个分别取值出来插入到数据库,比如先取“2014-1-1,1男,1女”把这三个值取出来之后赋给sql语句,再取“2014-1-2,2男,2女”的三个值赋给sql语句,直到取完为止。我知道是要写循环,脑子笨想不出来,很久没接触了。
sql语句参考 "insert into [table] ([Date],[Men],[Women]) values(@Date,@Men,@Women)";最后数据表里的值是这样的
2014-1-1 1男 1女
2014-1-2 2男 2女
2014-1-3 3男 3女
...... 展开
2个回答
展开全部
希望对你有帮助!全程测试过,绝对ok,有什么问题@我
实现思路:
分析整个数组,数组的长度是3个的倍数
用strList.Length长度/3就能得到,[2014-1-1,1男,1女]
关键是(i * 3),因为你除以3之后,第二次循环数组又开始从索引0查找索引把之前的索引赋上
代码如下:
//事件
protected void btnSql_Click(object sender, EventArgs e)
{
DateTime dtime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); //时间格式
string sql = "";
string[] strList = { "2014-1-1", "1男", "1女", "2015-1-2", "2男", "2女", "2016-1-3", "3男", "3女"};
//循环数组
for (int i = 0; i < strList.Length / 3; i++){
string _time = strList[i * 3];//日期
string _men = strList[i*3 + 1];//男
string _women = strList[i*3 + 2];//女
//赋值
sql = "insert into [table] ([Date],[Men],[Women]) values(" + _time + "," + _men + "," + _women + ")";
//执行插入
ExecuteSql(ConnectionString, CommandType.Text, sql, null);
}
}底层调用:
//获取config中的字符串
public string ConnectionString = ConfigurationManager.AppSettings["ConnectionString"];
/// <summary>
/// 给定连接的数据库用假设参数执行一个sql命令(不返回数据集)
/// </summary>
/// <param name="connectionString">一个有效的连接字符串</param>
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns>执行命令所影响的行数</returns>
public int ExecuteSql(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
using (SqlConnection conn = new SqlConnection(connectionString))
{
//PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}
展开全部
数据原本就不该保存在string数组中,即然你已经存了,那就
string[] strList = { "2014-1-1", "1男", "1女", "2014-1-2", "2男", "2女", "2014-1-3", "3男", "3女" };
for (int i = 0; i < strList.Length / 3; i++)
{
string dt = strList[i * 3];//日期,具体最后是哪种类型日期按需要转换一下
string men = strList[i * 3 + 1];//男
string women = strList[i * 3 + 2];//女
Console.WriteLine("{0},{1},{2}", dt, men, women);
}
Console.ReadKey();
得到数据后怎么插入数据库不用写了吧。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询