我正在尝试使用C#将列插入现有的DataSet中.
作为一个例子,我有一个DataSet定义如下:
DataSet ds = new DataSet();
ds.Tables.Add(new DataTable());
ds.Tables[0].Columns.Add("column_1", typeof(string));
ds.Tables[0].Columns.Add("column_2", typeof(int));
ds.Tables[0].Columns.Add("column_4", typeof(string));
Run Code Online (Sandbox Code Playgroud)
稍后在我的代码中,我想在第2列和第4列之间插入一列.
DataSet有添加列的方法,但我似乎无法找到插入列的最佳方法.
我想写下面的内容......
...Columns.InsertAfter("column_2", "column_3", typeof(string))
Run Code Online (Sandbox Code Playgroud)
最终结果应该是具有包含以下列的表的数据集:column_1 column_2 column_3 column_4
而不是:column_1 column_2 column_4 column_3这是add方法给我的
肯定有办法做这样的事情.
编辑 ...只是想根据下面的一些评论澄清我正在使用DataSet做什么:
我从存储过程中获取数据集.然后,我必须向数据集添加其他列,然后将其转换为Excel文档.我无法控制存储过程返回的数据,所以我必须在事后添加列.
可能重复:
python:使用元素散布列表的最优雅方式
假设我有以下列表:
['a','b','c','d','e']
Run Code Online (Sandbox Code Playgroud)
如何-在此列表中的每个项目之间添加新项目(在本例中为a ),以便我的列表如下所示?
['a','-','b','-','c','-','d','-','e']
Run Code Online (Sandbox Code Playgroud)
谢谢.
我有一个允许用户输入优惠券的系统(例如dell或amazon)
我想知道优惠券使用了多少,所以500次优惠券不再有效.
我现在想的方法是将优惠券插入表中然后select count(*)如果它达到50则我不插入并且我返回一条消息说它已过期.
我认为这个解决方案有效,但我想验证并检查是否有更好的方法.
是否有一种更有效,更省力的方法将所有记录从一个表复制到另一个表:
INSERT INTO product_backup SELECT * FROM product
Run Code Online (Sandbox Code Playgroud)
通常,该product表将保存大约50,000条记录.两个表的结构相同,其中有31列.我想指出这不是我的数据库设计,我继承了遗留系统.
我希望使用PHP PDO进行多次插入.
我找到的最接近的答案是这一个
然而,给出的例子使用?? 而不是真正的占位符.
我已经查看了PHP doc站点上的占位符示例
php.net pdo.prepared-statements
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);
Run Code Online (Sandbox Code Playgroud)
现在让我说我想实现上述但是使用数组
$valuesToInsert = array(
0 => array('name' => 'Robert', 'value' => 'some value'),
1 => array('name' -> 'Louise', 'value' => 'another value')
);
Run Code Online (Sandbox Code Playgroud)
如何使用PDO和每次交易多次插入?
我想它会以循环开始?
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
foreach($valuesToInsert as $insertRow){
// now loop through each inner array to match binded values
foreach($insertRow as $column …Run Code Online (Sandbox Code Playgroud) 我需要一个存储键值对的表,所以我创建了一个名为"Key"的列和一个名为"Value"的列.
这失败了:
insert into mykeyvalues (Key,Value) values ('FooKey', 'FooValue')
Run Code Online (Sandbox Code Playgroud)
"关键字'key'附近的语法不正确."
也许我不应该把它称为"密钥",但我只是想知道是否可以使用名称为sql关键字的列?
谢谢
------------------------------------- | user_id | user_name | user_visits | ------------------------------------- | 1 | foo | 5 | ------------------------------------- | 2 | bar | 12 | -------------------------------------
user_id:auto increament,user_visits:默认值1
INSERT INTO table(user_name)VALUES('baz'),('bar'),('qux');
上述声明当然会插入3条新记录,结果如下:
------------------------------------- | user_id | user_name | user_visits | ------------------------------------- | 1 | foo | 5 | ------------------------------------- | 2 | bar | 12 | ------------------------------------- | 3 | baz | 1 | ------------------------------------- | 4 | bar | 1 | ------------------------------------- | 5 | qux | 1 | ------------------------------------- …
在MS SQL上,我可以使用下面的sql命令进行批量插入:
BULK INSERT myDatabase.MyTable FROM 'C:\MyTextFile.txt' WITH FIELDTERMINATOR = ','
Run Code Online (Sandbox Code Playgroud)
现在我想在MySQL上做同样的事情,但我似乎无法弄清楚它是如何工作的以及使用什么查询.
我一直绞尽脑汁想要让它发挥作用.我希望从1900年到现在的年份动态地进入旋转器.我不认为这可以使用XML定义的数组,但我可以使用数组适配器吗?这是我到目前为止:
ArrayList<String> years = new ArrayList<String>();
int thisYear = Calendar.getInstance().get(Calendar.YEAR);
for (int i = 1900; i <= thisYear; i++)
{
years.add(i);
}
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, years);
//spinner to enter this list to
spinYear = (Spinner)findViewById(R.id.yearspin);
Run Code Online (Sandbox Code Playgroud)
这是微调器的XML:
<Spinner
android:id="@+id/yearspin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
我有几个文件保存为tsv.我想将它们插入到postgresqldb中,用sql分析它们.
但是,我的问题是如何将INSERT这个tsv文件转换成postgresql 9.2下windows 7?
感谢您的回复!
PS.:我创建了具有正确值的表格,如:
CREATE TABLE ratings (distribution VARCHAR, votes VARCHAR, rank FLOAT, title VARCHAR);
该文件位于以下目录中:
C:/Users/testUser/Desktop/TSV/ratings.list.tsv