Skip to content

Instantly share code, notes, and snippets.

@jchannon
Forked from codingbadger/CSV_To_Table
Last active December 22, 2015 21:59
Show Gist options
  • Save jchannon/6536985 to your computer and use it in GitHub Desktop.
Save jchannon/6536985 to your computer and use it in GitHub Desktop.
Create Function dbo.fn_ConvertCSVtoTable ( @input nvarchar(max), @token nchar(1))
Returns @Result Table
(ColumnValue nvarchar(max))
As
Begin
Declare @x XML
Select @x = CAST('<CSV>'+ REPLACE(@input, @token,'</CSV><CSV>')+ '</CSV>' AS XML)
Insert Into @Result
Select t.value('.', 'nvarchar(max)') AS ColumnValue
From @x.nodes('/CSV') AS x(t)
Return
End
Go
Create Table #Numbers
(
Numbers nvarchar(max)
)
Insert Into #Numbers
Values ('one'),('two'),('three'),('four'),('five'),('six'),('seven'),('eight'),('nine'),('ten')
Declare @FindMe nvarchar(max)
Set @FindMe = 'one,five,seven,nine'
Select n.*
From #Numbers n
Join dbo.fn_ConvertCSVtoTable(@FindMe, ',') csv on n.Numbers = csv.ColumnValue
Drop Table #Numbers
Drop Function dbo.fn_ConvertCSVtoTable
http://www.codeproject.com/Articles/39161/C-and-Table-Value-Parameters
using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnString"].ConnectionString))
{
var parameters = model.Keywords.Select((keyword, index) => new { Name = "@P" + index, Value = keyword });
var sql = String.Format("SELECT * FROM Table WHERE Id IN ({0})", String.Join(",", parameters.Select(x => x.Name)));
connection.Open();
using (var command = new SqlCommand(sql))
{
foreach (var p in parameters)
{
command.Parameters.Add(p.Name, SqlDbType.NVarChar).Value = p.Value;
}
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment