DID 用に C# で CLR ユーザー定義関数を作成しました。これは、Web サイトでの実装を意味し、DLL を SQL Server 2008 にデプロイしました。
ただし、テキスト ファイルを読み取った後の辞書は空白で返されます。
以下はコードの一部ですが、問題はテキスト ファイルの読み取りにあります。
public Spelling()
{
try
{
string fileContent = File.ReadAllText("C:/Bgtext/big.txt");
List<string> wordList = fileContent.Split('\n').ToList();
foreach (var word in wordList)
{
string trimmedWord = word.Trim().ToLower();
if (_wordRegex.IsMatch(trimmedWord))
{
if (_dictionary.ContainsKey(trimmedWord))
_dictionary[trimmedWord]++;
else
_dictionary.Add(trimmedWord, 1);
}
}
}
catch (Exception ex)
{
ex.Message.ToString();
}
}
[SqlFunction(Name = "CorrectWords", DataAccess = DataAccessKind.Read)]
public static string correctwords(string words)
{
string[] arr = words.Split(' ');
for (int i = 0; i <= arr.Length - 1; i++)
{
arr[i] = Correct(arr[i]);
}
StringBuilder correctedwords = new StringBuilder();
foreach (string value in arr)
{
correctedwords.Append(value);
correctedwords.Append(' ');
}
return correctedwords.ToString();
}
DLL を SQL Server に展開した後に big.txt ファイルを配置する必要がある特定の場所はありますか?それともアクセス許可の問題ですか?それともテキスト ファイルを読み取る別の方法がありますか?